objective-c - 使用 IBAction 而不是 touchesBegan :

标签 objective-c ios uitouch touchesbegan

设置 IBAction 来处理您的触摸事件与使用 touchesBegan:touchesMoved 等之间有什么真正的区别吗?哪些考虑因素会导致一个优于另一个?

最佳答案

辅助功能

如果通过 IBAction 你的意思是附加到像 UIControlEventTouchUpInside 这样的事件,那么有相当多的“魔法”附加到控制事件,这将需要一些工作来复制触摸事件.

最明显的是,如果您触摸一个UIButton,然后在释放之前将按钮拖离距离,按钮仍会发送其UIControlEventTouchUpInside事件。距离是通过可用性实验选择的:当某人的手指仍然认为他们正在按下按钮时,他们的手指可以滑动多远?

我怀疑使用控制事件也会使 iOS 6 Guided Access 变得更容易和其他辅助工具来了解您的应用。

从模型中分离 View

使用控件事件意味着 View 不需要知道它在点击时会产生什么效果。这在模型- View - Controller 范例中被认为是一件好事。理想情况下,您的 Controller 将接收事件,并更新模型以适应。

结论

如果您可以实现与控制事件的交互,那么最好这样做。

不过,有时您的控件需要复杂的交互。如果您要使用多点触控实现手指绘画之类的功能,您将需要确切知道触摸发生的位置和时间。在这种情况下,实现与 touchesBegantouchesMovedtouchesEndedtouchesCancelled 的交互。

关于objective-c - 使用 IBAction 而不是 touchesBegan :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12186712/

相关文章:

ios - 如何将值传递给另一个 UINavigationViewController

objective-c - 帮助填充数字字符串

ios - 我可以检测 iPhone 是否启用了模糊功能吗?

swift - WKCompositingView 是否阻止触摸?

iphone - 如何访问UITouch位置在窗口中的坐标

ios - UITouch-是否可以禁用多次点击

ios - 关于使用矩形图像创建圆形 UIImageView 的问题

ios - executeFetchRequest:错误:在主线程上卡住

IOS DEV : Should I be concerned if the Main. Storyboard布局看起来与实际布局不同?

ios - 字符串到字典和向后