将子视图设置为响应者以调用父UIView子类

时间:2011-10-07 13:32:17

标签: objective-c ios uiview

我有一个UIView,我已经将其子类化为我的应用程序中使用的主视图。在其中,我有两个子视图:横幅和容器。横幅基本上是放置广告或免责声明的地方。 Container可以作为主视图,您可以添加,删除以及任何其他视图,就像它是唯一的视图一样。

现在,我只是覆盖父视图的方法并将调用发送到容器视图。我想知道是否有更简单的方法来做到这一点,而不必为每种方法写出这样的东西:

- (void)addSubview:(UIView*)view {
  [container addSubview:view];
}

可能允许您将对视图的所有方法调用委托给特定子视图,而不是响应方法调用本身。

任何人都知道这是否可行?

1 个答案:

答案 0 :(得分:0)

我对这个问题感到有些困惑。

响应者链存在并通过层次结构将ui事件传递到屏幕上的所有可见视图。阅读一些关于响应者链的信息可能是有用的,因为通过设计它会将事件从最深的视图传递到最高的(根),这与您正在寻找的方向相反(如果我正在阅读这是正确的。)

如果您需要将事件从superview转发到子视图,要遵守封装原则,您应该在子视图的子类接口中定义适当的操作,然后配置您的superview以定位该子视图/类中的操作。 / p>