我正在寻找在iPhone/iPad应用程序中创建一个滚轮。我知道你可以继承UIGestureRecognizer来编写你自己的识别器。有人知道如何创建一个可以检测到圆形运动的运动(可能与平底运动相结合)?Write a Circular UIGestureRecognizer
谢谢
我正在寻找在iPhone/iPad应用程序中创建一个滚轮。我知道你可以继承UIGestureRecognizer来编写你自己的识别器。有人知道如何创建一个可以检测到圆形运动的运动(可能与平底运动相结合)?Write a Circular UIGestureRecognizer
谢谢
这个问题并不容易。我花了一些时间,可能的解决方案的思考:
我想你需要的是一些关键的属性,你必须设置:
现在你有这样的事情(不幸的是我没有足够的声誉因此只有链接:http://img17.imageshack.us/img17/4416/bildschirmfoto20100721u.png
现在这背后的数学开始:
首先你安排走廊在四分之四:
对于你必须弄清楚当手指移动每个季度(让我们说,在0°线是从中心点直到顶部):
将这个逻辑应用于所有宿舍。现在您知道了转轮是顺时针还是逆时针移动的。您必须确保手指永远不会离开走廊(如果您测试了这一逻辑并且因为走出走廊而停止移动,请使走廊更大 - 感谢CrystalSkull的评论:使用44px作为最小宽度走廊适用于人机界面指南)。
Sumary
所以现在你可以断定你需要一个中心点和走廊的手指可以动。 你必须找出其中四分之一的手指是找出(使用X-值),如果旋转是顺时针或逆时针。
我希望这可以帮助你一点点。
我可以确定顺时针/逆时针方向,但我如何计算出手指所在的四分之一?我目前有一个自定义的UIButton,并添加了一个圆形图像... – joec 2010-07-28 15:32:11
嗨, 你可以通过找出手指在哪里得到季度(在UIView中有一个方法:touchesMoved:withEvent :)。所以现在你有手指的x和y位置。现在,如果y大于中心点的y,则您知道手指位于轮子的上方,因此在第一个或最后一个季度(假设第一个手指从右上角开始并顺时针转动)。通过使用手指的x位置,你可以发现它是不是左边还是右边。 你的转轮的中心是你必须提供的重要信息。 – 2010-07-29 07:00:00
如果我能在这里发出响亮的声音,那么根据HIG使走廊的宽度至少为44px可能是有意义的。 – 2010-10-29 04:23:01