此代码用于工作并产生一个正方形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
放到主线程上,但没有区别。在视图中移动它的等效手势继续有效。我也尝试过放入setNeedsDisplay
和setNeedsLayout
,只是为了表明我是多么绝望!
答案 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])];