使用UIPinchGestureRecognizer调整UILabel的大小已停止工作

时间:2018-05-20 20:17:03

标签: ios objective-c uipinchgesturerecognizer

此代码用于工作并产生一个正方形UILabel,其边角半径设置为边长的一半(即看起来像一个圆),在收缩时重新调整尺寸: / p>

- (void)resizeTargetRegistrationShape:(UIPinchGestureRecognizer *)sender
{
    if ( [sender state] == UIGestureRecognizerStateBegan || [sender state] == UIGestureRecognizerStateChanged )
    {
        [[sender view] transform] = CGAffineTransformScale([[sender view] transform], [sender scale], [sender scale]);
        [sender setScale:1.0];
    }
}

使用正确的UIPinchGestureRecognizer调用选择器,视图是正确的标签,缩放值是合理的。我已经尝试将transform放到主线程上,但没有区别。在视图中移动它的等效手势继续有效。我也尝试过放入setNeedsDisplaysetNeedsLayout,只是为了表明我是多么绝望!

1 个答案:

答案 0 :(得分:0)

这条线总是错的,令人惊讶的是它似乎有效(事实上,我不明白为什么它甚至在这个应用的存在的任何阶段编译):< / p>

[[sender view] transform] = 
    CGAffineTransformScale(
        [[sender view] transform], [sender scale], [sender scale]);


你的意思是:

[[sender view] setTransform: 
    CGAffineTransformScale(
        [[sender view] transform], [sender scale], [sender scale])];