【发布时间】:2012-01-16 23:55:04
【问题描述】:
我有一个宽度/高度为 256x256 的滚动视图。我有在两个方向(左和右)拉伸的滚动视图的子视图。我将 clipToBounds 设置为 NO,以便可以在滚动视图中看到项目。
当用户触摸滚动视图支架中的空间(超出 256x256 的区域)时,我会检查 hittest 并返回滚动视图。
我的问题是我的滚动视图上的项目是按钮,如果按钮不在 256x256 内,则它不会接收到触摸事件。如何循环浏览滚动视图上的按钮,然后将事件转发到按钮?
我正在这样做Paging UIScrollView with peeking neighbor pages
但是我的滚动视图子视图没有收到事件。
在我看来,我已经尝试了以下所有应该发送事件的方法,而我的按钮将不会接收事件。事件链总是停在我的 UIScroll 视图 - 允许我滚动我的项目 - 但我如何将事件从滚动视图转发到按钮?
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if ([self pointInside:point withEvent:event]) {
return self.scrollView;
}
return nil;
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if ([self pointInside:point withEvent:event]) {
return self.scrollView;
}
return nil;
}
- (UIView *) hitTest:(CGPoint) point withEvent:(UIEvent *)event {
UIView* child = nil;
if ((child = [super hitTest:point withEvent:event]) == self) {
return self.scrollView;
}
return child;
}
【问题讨论】:
标签: iphone objective-c ios