在不保持纵横比的情况下调整UIImage / UIImageView的大小

时间:2012-02-01 13:43:05

标签: objective-c ios5 uiimageview uiimage

我有一个UIImageView,我已经添加了一个PinchGestureRecognizer。目前,图像在捏合时很好地调整了大小,但我希望能够在不保持纵横比的情况下调整图像大小。因此,如果用户水平捏住,图像视图的宽度会增大;如果它们垂直捏,高度就会增大等等。

任何人都可以给我一个如何做到这一点的暗示吗?

2 个答案:

答案 0 :(得分:1)

编写一个自定义手势识别器,需要两个手指在屏幕上 一旦两个手指都在屏幕上,将其偏移量存储到某些UIEdgeInsets中的imageView边框。

在touchesMoved中,检查两个手指是否都在屏幕上:如果是,请通过在当前触摸位置应用edgeInsets来计算新帧。

标题:click
实施:click

效果很好,感觉比我见过的其他实现更自然。

答案 1 :(得分:0)

您需要自己进行触摸处理,因为UIPinchGestureRecognizer仅支持一个没有水平或垂直挤压概念的刻度。

您可以创建自己的UIGestureRecognizer子类(请参阅here for docs),该子类查看触摸点的水平和垂直分离,以确定2个不同的比例。创造我应该相当直接的想法。只需查看初始触摸点,然后在它们移动时,计算当前触摸间距与垂直和水平方向上触摸的初始分离的差异。