写一个圆形的uigesturercognizer
-
02-10-2019 - |
题
我希望在iPhone / iPad应用程序中创建慢跑轮。我知道您可以为UigeSturerogentizer子类撰写自己的识别者。有人知道如何(主要是其背后的数学)创建一个可以检测到圆形运动的人,也许与锅姿态结合使用?
谢谢
解决方案
这个问题并不容易。我花一些时间思考可能的解决方案:
我认为您需要的是必须设置的一些关键属性:
- 圆形运动的中心(在这种情况下没问题,因为您知道慢跑车轮的中心)
- 运动应该发生的走廊。
- 因此,您需要内部半径和外半径。
现在您有了这样的东西(不幸的是,我没有足够的声誉,所以只有链接: http://img17.imageshack.us/img17/4416/bildschirmfoto20100721u.png
现在,这背后的数学开始:
首先,您在四个季度中安排走廊:
- 从0°到90°
- 从90°到180°
- 从180°到270°
- 从270°到360°
对于每个季度,您必须弄清楚何时移动手指(假设0°线从中心点直至顶部):
- 如果手指在第一季度,您知道X向左变化是否会旋转必须逆时针方向。如果X更改右侧,则旋转必须顺时针旋转。
将此逻辑应用于所有季度。现在,您知道慢跑轮是顺时针还是逆时针移动。您必须确保,手指永远不会离开走廊(如果您测试此逻辑并且由于离开走廊而停止运动,请使走廊更大 - 感谢Crystalskull的评论:将44PX用作最小宽度作为最小宽度。走廊适用于人类界面准则)。
sumary
因此,现在您可以得出结论,您需要一个中心点和一个走廊可以移动。顺时针。
希望这对您有所帮助。
不隶属于 StackOverflow