我试图实现音量控制状圆形按钮。目前,我可以通过手势识别检测刷卡。如何检测按钮上的圆形姿态(顺时针和逆时针)?谢谢!

有帮助吗?

解决方案

您寻找一个点触摸手势(如圆形滑块),或双触摸手势(如抓取和转向现实世界的旋钮)?如果是后者,看看 UIRotationGestureRecognizer

如果是前者,你几乎在你自己。你当然可以实现您的解决方案作为自己的自定义手势识别:这是由苹果公司预期,且还有的一些文件,让你开始(虽然我还没有看到许多工作的例子在那里)。还请参见如何正确子类UIGestureRecognizer

作为一般的方法,我认为该区域为手势作为环形形状:与中心的 C 的,内半径 R1 ,和外半径的区 R2 。当用户触摸下来,你可以计算出从的 c中的距离的利用勾股定理,并与喜爱的三角函数的角度。就这样,你可以确定触摸是否是区域内。当用户拖动,就可以更新基于该角度控制值。在某些时候,他们就会要么润色,或该区域的阻力之外,并且将结束手势。我建议允许触摸流浪相当一段距离内的 R1 的或外部的 R2 的:手指是不精确的工具

其他提示

由于没有找到一个解决方案,并通过合理的设计灵感来自@ sixten的答案,我已经走了,创造了一些有用的东西,这不是防弹的,但它似乎做什么,我需要现在。

请任何人,它叉,克隆它,使用它,改进它,它是开源的,这是我的回购链接:

https://bitbucket.org/danielphillips/dpcirculargesturerecognizer

您是否尝试过写你自己的手势识别?有详细的文档的指令。

最好的办法是实现自定义的手势识别器。我不知道,如果你希望检测一个不显眼的手势(事件处理方法将被调用一次全圆已检测)或继续手势(事件处理方法将被调用每次你移动你的手指上的圆形路径)。

可能,用户可以不绘制正圆,并且通过@Sixten奥托提供的解决方案将是良好的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top