首页 > 解决方案 > 如何使用 UIGestureRecognizers 相对于触摸位置在 UIScrollView 内旋转 UIImageView

问题描述

我正在寻找如何在 UIScrollView 内实现 UIImageView 的 UIRotationGestureRecognizer 的示例,其中相对于触摸发生的位置执行旋转,而不是相对于 UIImageView 的原点。

在我发现的大多数示例中,ImageView 围绕它自己的中心点旋转。换句话说,如果你将两根手指放在图像的左上角,并转动它们(以执行旋转手势),UIImageView 将围绕它自己的原点旋转。

我正在寻找的行为将使 UIImageView 围绕触摸点旋转。

虽然有很多关于如何在 ScrollView 中为 ImageView 实现 UIRotationGestureRecognizer 的教程,但我还没有找到任何描述如何执行相对于触摸的旋转的教程。

标签: iosiphoneswiftuigesturerecognizer

解决方案


UIRotationGestureRecognizer 返回一个旋转角度。

基类 ,UIGestureRecognizer有一个方法

location(ofTouch:in:)和一个变量numberOfTouches

在手势识别器的 valueChanged 处理程序中,您应该能够获取 2 次触摸,找到这两个点的中点,然后围绕该点而不是视图中心应用旋转。


推荐阅读