我有一个UIImageView,我已经添加了一个PinchGestureRecognizer。目前,图像在捏合时很好地调整了大小,但我希望能够在不保持纵横比的情况下调整图像大小。因此,如果用户水平捏住,图像视图的宽度会增大;如果它们垂直捏,高度就会增大等等。
任何人都可以给我一个如何做到这一点的暗示吗?
答案 0 :(得分:1)
编写一个自定义手势识别器,需要两个手指在屏幕上 一旦两个手指都在屏幕上,将其偏移量存储到某些UIEdgeInsets中的imageView边框。
在touchesMoved中,检查两个手指是否都在屏幕上:如果是,请通过在当前触摸位置应用edgeInsets来计算新帧。
效果很好,感觉比我见过的其他实现更自然。
答案 1 :(得分:0)
您需要自己进行触摸处理,因为UIPinchGestureRecognizer
仅支持一个没有水平或垂直挤压概念的刻度。
您可以创建自己的UIGestureRecognizer
子类(请参阅here for docs),该子类查看触摸点的水平和垂直分离,以确定2个不同的比例。创造我应该相当直接的想法。只需查看初始触摸点,然后在它们移动时,计算当前触摸间距与垂直和水平方向上触摸的初始分离的差异。