现在我有几个按钮彼此相邻,如下所示:
用户必须按下所有这些键才能选择整行(我有几行)。让他们轻扫它们以选择它们是很自然的。我还需要获取有关选择了多少按钮的信息。
您能帮我实现这一目标吗?我是否必须创建自己的视图或实现一些手势监听器?
根据您想要实现的目标,有两种简单的方法:
UISwipeGestureRecognizer
到您的视图(或添加到只有 4 个按钮的视图)并在您的视图控制器中实现委托接口。完成滑动(朝好的方向)后,您会收到一个事件并执行“解锁”。UISwipeGestureRecognizer
扩展(此处UIGestureRecognizer
为文档):
手势识别器的客户端也可以通过调用 locationInView: 或 locationOfTouch:inView: 来询问手势的位置。
因此,通过 + 实施(此处UIGestureRecognizerDelegate
的文档),您应该能够准确检查您想要的内容。
touchBegan
touchMoved
touchEnded
您可以在这里完全控制(CGRectContainsPoint()
将很有用)。
编辑: 做出选择时必须牢记的重要一点是速度。如果用户即使使用缓慢和非线性的手势也可以选择行(例如,将手指放在第一个按钮上 > 慢慢转到第二个 > 转到第三个 > 返回第二个 > 转到最后一个),您应该扩展 UIView并在触摸开始时使第一个图像突出显示,然后跟随手指直到最后一个按钮上的 touchEnd。它应该更加用户友好(当然取决于您要实现的目标)。
查看这个开源项目Swipe-to-Select Gridview