ios - 如何使用 UIGestureRecognizers 相对于触摸位置在 UIScrollView 内旋转 UIImageView
问题描述
我正在寻找如何在 UIScrollView 内实现 UIImageView 的 UIRotationGestureRecognizer 的示例,其中相对于触摸发生的位置执行旋转,而不是相对于 UIImageView 的原点。
在我发现的大多数示例中,ImageView 围绕它自己的中心点旋转。换句话说,如果你将两根手指放在图像的左上角,并转动它们(以执行旋转手势),UIImageView 将围绕它自己的原点旋转。
我正在寻找的行为将使 UIImageView 围绕触摸点旋转。
虽然有很多关于如何在 ScrollView 中为 ImageView 实现 UIRotationGestureRecognizer 的教程,但我还没有找到任何描述如何执行相对于触摸的旋转的教程。
解决方案
UIRotationGestureRecognizer 返回一个旋转角度。
基类 ,UIGestureRecognizer
有一个方法
location(ofTouch:in:)
和一个变量numberOfTouches
在手势识别器的 valueChanged 处理程序中,您应该能够获取 2 次触摸,找到这两个点的中点,然后围绕该点而不是视图中心应用旋转。
推荐阅读
- typescript - 在收听集合并将更改推送到它时处理无限循环
- javascript - 如何添加 TS 文件以在 prod 中启动 vue3 应用程序
- javascript - 如何在引导弹出时加载查看页面(非部分)?
- r - 为 geom_segment 添加图例条目
- java - 如何将用户选择的图像添加到 SMS Intent?
- amazon-web-services - Application Load Balancer 入口控制器的多域侦听器
- python - 尝试导入 talib 时如何修复 Python 错误?
- html - 美化包含冷融合代码块的 HTML 代码
- python - ValueError: 层序的输入 0 与层不兼容:预期 min_ndim=3,发现 ndim=2。收到的完整形状:[无,2]
- python - pyparsing 使用多个开启器和关闭器解析嵌套表达式