为什么UIViewController和UIView子类UIResponder?

时间:2015-12-29 09:51:35

标签: ios objective-c iphone uiview

查看Apple GLPaint示例代码。

我看到PaintingViewController和PaintingView都实现了

- (BOOL)canBecomeFirstResponder {
    return YES;
}

为什么是二元性?一般来说,UIView是否应该负责处理硬件生成的触摸事件?正如The Runtime Interaction Model for Views

中所述

1 个答案:

答案 0 :(得分:0)

不,有一个简单的例子:

想象一下,你有presentedController。然后你不希望presentingController处理触摸事件,即使它仍然可见。

在事件传递中查看控制器层次结构非常重要。

请参阅UIViewController文档中的说明:

  

视图控制器与其管理的视图紧密绑定,并参与用于处理事件的响应程序链。视图控制器也是UIResponder对象,并插入到视图控制器的根视图和该视图的超级视图之间的响应链中,该视图通常属于不同的视图控制器。如果视图控制器的视图都没有处理事件,则视图控制器可以选择处理事件或将其传递给superview。