使用 UIPinchGestureRecognizer 调整 UILabel 的大小已停止工作
Resizing UILabel using UIPinchGestureRecognizer has stopped working
此代码曾经有效并导致正方形 UILabel
的边框的角半径设置为边长的一半(即它看起来像一个圆),在捏合时重新调整大小:
- (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
也放进去,只是为了表明我有多绝望!
这一行总是错误的,令人惊讶的是它似乎一直有效(事实上,我不明白为什么它甚至在这个应用程序存在的任何阶段都被编译):
[[sender view] transform] =
CGAffineTransformScale(
[[sender view] transform], [sender scale], [sender scale]);
你的意思是:
[[sender view] setTransform:
CGAffineTransformScale(
[[sender view] transform], [sender scale], [sender scale])];
此代码曾经有效并导致正方形 UILabel
的边框的角半径设置为边长的一半(即它看起来像一个圆),在捏合时重新调整大小:
- (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
也放进去,只是为了表明我有多绝望!
这一行总是错误的,令人惊讶的是它似乎一直有效(事实上,我不明白为什么它甚至在这个应用程序存在的任何阶段都被编译):
[[sender view] transform] =
CGAffineTransformScale(
[[sender view] transform], [sender scale], [sender scale]);
你的意思是:
[[sender view] setTransform:
CGAffineTransformScale(
[[sender view] transform], [sender scale], [sender scale])];