我目前可以使用Apple提供的捏合手势识别器来制作图像比例,但如何限制图像的最大比例?
我一直在使用简单的手势识别器示例来自Apple,它将比例设置为1,并且使缩放图像变得非常容易,但是当我删除它时,它突然跳跃,这不太好。但由于比例始终设置为 1,因此很难跟踪比例。
先感谢您。
UIKit 会针对单个用户手势(捏合)多次调用您的选择器方法。每次调用都代表比例的一个小增量(或减小)。如果您处理对该方法的每次调用并针对每个小增量相应地缩放图像,您将获得平滑的动画。
您可以使用识别器的缩放属性来修改图像。然后,将该属性重置为 1.0,以便下次调用选择器方法时,scale 属性仅表示自上次以来新的小增量。您再次按新的小增量重新缩放图像并重置为 1.0。如果您不重置识别器的比例并使用它来重新缩放图像,则您将通过累积变化来缩放图像,从而导致跳跃行为(以及不正确的缩放)。
因此,请确保将手势识别器的比例重置为 1。要跟踪比例的总变化,您可以为 UIImageView 或 ViewController 创建一个实例变量,也可能称为“比例”。 (事实上,如果您在 drawRect 中使用新的比例变量来绘制图像,则只需在 setter 中添加对 setNeedsDisplay 的调用。并且您无需编写任何代码来在比例变化时重新绘制图像.)
无论如何,以下代码(结合 Ravin 的限制检查,但在新的比例变量上)应该适用于您的选择器方法:
- (void)pinch:(UIPinchGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateChanged ||
recognizer.state == UIGestureRecognizerStateEnded) {
if (imageView.scale < yourScaleLimit) {
imageView.scale *= recognizer.scale;
//any other code to scale up the image if
//just changing imageView.Scale is not enough
}
recognizer.scale = 1.0;
}
}
我希望这是有帮助的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)