2012-02-01 100 views
1

我有一个UIImageView,我已经添加了一个PinchGestureRecognizer。目前,捏图时图像很好地调整大小,但我希望能够调整图像的大小而不保持长宽比。因此,如果用户水平捏,图像视图的宽度会放大;如果他们垂直捏,高度会扩大等等。调整UIImage/UIImageView的大小而不保持长宽比

任何人都可以给我一个提示,我该怎么做,请吗?

回答

1

编写一个需要两个手指在屏幕上的自定义手势识别器。
一旦两个手指都在屏幕上存储它们在一些UIEdgeInsets中的imageView边界的偏移量。

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

页眉:click
实现:click

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

+0

非常感谢。我很感激!! – 2012-02-01 14:44:04

+0

昨晚我给你发了一封电子邮件。显然这可以在模拟器上运行,但不管出于什么原因都不在设备上。你碰巧有什么线索为什么? – 2012-02-04 13:17:46

0

由于UIPinchGestureRecognizer只需支持一种尺寸,因此不需要水平或垂直夹紧。

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

相关问题