我正在寻找在 iPhone / iPad 应用程序中创建缓动轮。我知道你可以继承 UIGestureRecognizer 来编写你自己的识别器。有谁知道如何(主要是它背后的数学)创建一个可以检测圆周运动的方法,也许与平移手势相结合?
谢谢
我正在寻找在 iPhone / iPad 应用程序中创建缓动轮。我知道你可以继承 UIGestureRecognizer 来编写你自己的识别器。有谁知道如何(主要是它背后的数学)创建一个可以检测圆周运动的方法,也许与平移手势相结合?
谢谢
这个问题并不容易。我花了一些时间考虑一个可能的解决方案:
我认为您需要的是必须设置的一些关键属性:
现在你有这样的东西(不幸的是我没有足够的声誉,所以只有链接:http: //img17.imageshack.us/img17/4416/bildschirmfoto20100721u.png
现在开始计算这背后的数学:
首先,您将走廊布置成四个四分之一:
对于每个季度,您必须弄清楚手指何时移动(假设 0° 线从中心点一直到顶部):
将此逻辑应用于所有季度。现在您知道缓动盘是顺时针还是逆时针移动了。您必须确保手指永远不会离开走廊(如果您测试此逻辑并且运动因离开走廊而停止,请使走廊更大 - 感谢 CrystalSkull 的评论:使用 44px 作为最小宽度走廊适用于人机界面指南)。
总结
所以现在你可以得出结论,你需要一个中心点和一个手指可以移动的走廊。你必须弄清楚手指在哪个四分之一,并找出(使用x值)旋转是顺时针还是逆时针-顺时针。
我希望这对您有所帮助。