iphone - 如何通过手势识别器检测圆形手势?

标签 iphone ipad uigesturerecognizer

我正在尝试实现一个类似音量控制的圆形按钮。目前我可以通过手势识别器检测滑动。如何检测按钮上的圆形手势(顺时​​针和逆时针)?谢谢!

最佳答案

您是否正在寻找一触式手势(如圆形 slider )或两触式手势(如捕获并转动现实世界的旋钮)?如果是后者,请查看UIRotationGestureRecognizer .

如果是前者,你就只能靠自己了。您当然可以将您的解决方案实现为您自己的自定义手势识别器:这是 Apple 所期望的,并且有 some documentation to get you started (尽管我还没有看到很多有效的例子)。另请参阅How to correctly subclass UIGestureRecognizer .

作为一般方法,我将手势区域视为圆环形状:具有中心 c、内半径 r1 和外半径的区域r2。当用户着陆时,您可以使用毕达哥拉斯定理计算距 c 的距离,并使用您最喜欢的三角函数计算角度。这样,您就可以确定触摸是否在该区域内。当用户拖动时,您可以根据角度更新控制值。在某些时候,他们会触摸或拖动到区域之外,这将结束手势。我建议允许触摸在 r1 内部或 r2 外部偏离很远:手指是不精确的工具。

关于iphone - 如何通过手势识别器检测圆形手势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600690/

相关文章:

ios - 让iPad屏幕关闭,但通过触摸唤醒(无锁) - - iOS 6.0/openFrameworks

ios - 如何在突出显示(点击)时使 UIImageView 变暗?

iphone - 水平滚动 UITableView - 注意事项?

ios - 在 Xcode 中使用 iPad 和 iPhone Storyboard

iphone - iOS 应用程序启动画面使用的尺寸是多少?

ios - UIScreenEdgePanGestureRecognizer 边缘属性未按预期设置

ios - 从平移手势中剪切对角线移动

iphone - 设置设备音量 - UILocalNotification - iphone 处于静音模式

ios - 使用 iAd 时方向更改会导致 iOS 7 上的应用程序崩溃(无法识别的选择器发送到实例)

iphone - 我们可以从应用商店获得唯一的交易ID吗