如何在同一类的不同对象中处理iOS中的相同触摸事件?

时间:2011-04-25 10:21:54

标签: iphone cocoa-touch events

我有一个类TouchImageView,它是UIImageView的子类。我希望这个类的对象处理触摸事件。它继承了所有UIImageView的属性和方法,我启用了用户交互,覆盖[init]和[touchesBegan:WithEvent]。此类的对象正在代码中创建,并作为子视图添加到主视图中。我现在需要的是处理这些“TouchImageViews”触发的触摸事件。我知道如何在Interface Builder中创建控件,然后将它的特定事件与控制器的IBAction链接起来。但是我无法找到处理以编程方式创建的视图的方法。没有什么可以用鼠标拖放,因为TouchImageView对象是在运行时稍后创建的。

问题是:处理程序[touchesBegan:WithEvent]如何知道哪些“视图”触发了事件?

如果无法用两个词来描述这个问题,请您阅读本主题或Apple的代码示例,其中包括所需的程序?

提前致谢。

1 个答案:

答案 0 :(得分:1)

手势识别器是一种很好的方法。这些是可以附加到任何视图的对象(即,其类继承自UIView的任何对象)。您为要响应的每种类型的触摸手势附加手势识别器,然后编写选择器方法以任何方式处理它。

Apple的Event Handling Guide for iOS, chapter 3给出了很好的解释,以及创建手势识别器的代码,以及处理触摸事件的选择器方法的代码。一旦你熟悉它们,它们就相当容易使用并且需要相当少的代码。