好吧这应该是一个简单的任务,但它一直让我发疯。UIView菜单在UIScrollView
我想要实现的是一个UIScrollView,显示在屏幕的侧面和底部的静态透明工具栏后面。该结构目前已设置为使scrollView(UIScrollView的子类)和overlay(UIView的子类)都是RootViewController的子视图。
问题是,如果我能overlay.userInteractionEnabled所有接触到的层并不能得到的滚动视图。但是,如果我关闭用户交互的scrollView工作正常,但我无法与叠加层进行交互。
至于处理触摸,我用RootViewController的收集这些和他们像发送到正确的对象,因此:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *t1 = [[[event allTouches]allObjects]objectAtIndex:0];
CGPoint loc = [t1 locationInView:self.view];
if (CGRectContainsPoint(overlay.rightToolbar.frame, loc)) {
overlayTouched = YES;
[overlay touchesBegan:touches withEvent:event];
} else {
overlayTouched = NO;
[scrollView touchesBegan:touches withEvent:event];
}
}
我有一种感觉,一个修补程序将设置工具栏为独立UIViews并将它们作为子视图添加到视图控制器中,以便覆盖层不占用整个屏幕,但是如果有其他方法,我想避免这种情况。