iPhone:视图和子视图的层次结构

时间:2011-04-16 20:20:36

标签: iphone objective-c cocoa-touch uiview

初学者的问题:

我在视图中创建了一个子视图。在那个子视图中,我创建了另一个子视图。每个子视图填满整个屏幕(320x480):

[self.view addSubview:aView]; // 320x480
[aView addSubview:yetAnotherView]; // 320x480

如果我理解正确,这将导致以下层次结构:

  • TOP:yetAnotherView
  • MIDDLE:aView
  • BOTTOM:查看

到目前为止一切顺利。我的问题是,我想在这些视图的顶部识别出手势(无论是哪种视图......在我的情况下,我认为它是另一种视图)。以下命令不起作用 - 我猜是因为视图被子视图隐藏了:

    UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];

有没有办法告诉编译器它不应该采用self.view,而除了所有其他视图之外的任何视图

非常感谢任何帮助!


编辑:

我认为我的问题是我正在编辑的子视图是全屏UITextViews ......我想我可以覆盖它们的触摸?例如从右到左滑动应该可以工作,但是从下到上滑动(通常滚动uitextview - 除非我将其设置为无法滚动)。

1 个答案:

答案 0 :(得分:0)

如果使用touchesMoved:withEvent:方法

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

然后你可以使用它:

UITouch *touch1 = [[event touchesForView:self.someView] anyObject];

希望这有帮助。