Sim*_*mon 5 iphone objective-c uiscrollview uiview
类似于这个线程和许多其他线程,我有一个带有NIB文件的视图控制器,它具有这种布局......
上面的所有三个项目都是NIB中主视图的子视图.UIView(c)是iPhone屏幕的完整大小,位于层次结构之上.在它上面,我放置了一个基于该视图中当前触摸位置动画的角色.然而问题是,在这个视图接收触摸时,我无法触及它下面的ScrollView(b).我仍然需要使用(c)中的触摸,但还需要将相关的触摸/滑动传递到下面的UIScrollView.
任何人都可以建议如何做到这一点?我已经阅读了有关使用hittest的各种帖子,但不想完全抵消这些触摸,我只需要转发它们,以便滚动视图仍能正常工作.
谢谢,
如果是我,我会将scrollView 设置为顶部视图的委托。当然,这需要顶视图是 的自定义子类UIView,因此您可以设置
id delegate;
Run Code Online (Sandbox Code Playgroud)
和
@property (nonatomic, assign) id delegate;
Run Code Online (Sandbox Code Playgroud)
在头文件中。然后,您可以将scrollView设置为委托,并使用以下内容
[topView setDelegate:scrollView];
Run Code Online (Sandbox Code Playgroud)
完成此操作后,您就可以在需要时将消息(在您的情况下为触摸事件)发送到滚动视图。例如,如果您想发送所有 touchBegan 事件,则可以这样:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.delegate touchesBegan:touches withEvent:event];
}
Run Code Online (Sandbox Code Playgroud)
当然,如果您只想传递某些事件,您可以在方法中设置参数来说明何时调用[self.delegate ....]或[super ....]。后者将为视图而不是滚动视图执行操作。我希望这有帮助
| 归档时间: |
|
| 查看次数: |
3861 次 |
| 最近记录: |