UIControl如何将所有触摸事件传递给响应者链中的下一个对象?

时间:2009-08-21 17:27:00

标签: iphone uikit uicontrol

这很棘手。我有一个非常大的按钮。按下该大按钮上的小按钮时,小按钮会执行某些操作。但是大人物什么都不做。当然。但现在我希望大按钮也可以做一些事情,无论小按钮是否被敲击。所以小按钮必须将所有触摸事件转发到那个大按钮。最简单的方法是什么?

我知道UIView,但是UIControl有自己独特的触摸处理方法,与UIView不同。在UIView中看起来有点像这样:

[self.nextResponder touchesBegan:touches withEvent:event];

2 个答案:

答案 0 :(得分:0)

你可以实现一个协议让大按钮从小按钮接收消息,虽然我要做的是在UIViewController中有两个按钮,让小按钮告诉UIViewController它被点击(通过选择器或协议)然后UIViewController可以相应地更新大按钮....更多关于这里的协议http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html

答案 1 :(得分:0)

可能想看看显示合成触摸事件的方法的this post。但它停止了工作一段时间。刚刚重新审视它看起来他已经更新了它的3.0支持,所以它可能适合你。需要注意的是,它可能不适用于运送应用程序。

更简单的方法是在点击大按钮并将其公开时,打破执行工作的方法(让我们称之为bigButtonWork)。然后大按钮点击处理程序只调用此例程。当小按钮被点击时,您可以在其处理程序内选择自己做的事情或者调用bigButtonWork

但我猜你想让它模拟实际被推动的大按钮(完成高光和状态变化),所以你可能必须走合成的事件路线。