iPhone:视图和子视图的层次结构
Posted
技术标签:
【中文标题】iPhone:视图和子视图的层次结构【英文标题】:iPhone: Hierarchy of Views and SubViews 【发布时间】:2011-04-16 20:20:36 【问题描述】:一个初学者的问题:
我在我的视图中创建了一个子视图。在那个子视图中,我创建了另一个子视图。每个子视图填满整个屏幕 (320x480):
[self.view addSubview:aView]; // 320x480
[aView addSubview:yetAnotherView]; // 320x480
如果我理解正确,这将导致以下层次结构:
顶部:还有另一个视图 中间:视图 底部:视图到目前为止一切顺利。我的问题是,我想识别这些视图顶部的手势(无论可能是什么视图......在我的情况下,它是另一个视图,我想)。以下命令不起作用——我猜是因为视图被子视图隐藏了:
UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];
有没有办法告诉编译器它不应该采用 self.view 而是在所有其他视图之上的任何视图?
任何帮助将不胜感激!
编辑:
我认为我的问题是我正在编辑的子视图是全屏 UITextViews ......我想我可以覆盖它们的触摸?例如从右向左滑动应该可以,但是从下到上滑动呢(通常会滚动 uitextview - 除非我将其设置为无法滚动)。
【问题讨论】:
【参考方案1】:如果你使用 touchesMoved:withEvent: 方法
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
那么你可以使用这个:
UITouch *touch1 = [[event touchesForView:self.someView] anyObject];
希望这会有所帮助。
【讨论】:
非常感谢。我刚刚意识到问题在于我正在尝试使用全屏 UITextViews 作为子视图......我猜你不能在它们上使用手势,对吧?以上是关于iPhone:视图和子视图的层次结构的主要内容,如果未能解决你的问题,请参考以下文章
将应用程序从 iPhone 迁移到 iPad - 不同的视图控制器层次结构