我有一个宽度/高度为256x256的滚动视图。我有两个方向(左侧和右侧)的滚动视图的子视图。我将clipToBounds设置为NO,因此我可以在滚动视图中看到这些项目。iOS UIScrollView clipToBounds = NO未检测到子视图
当用户触摸scrollview持有者(超出256x256的区域)的空间时,我检查hittest并返回scrollView。
我的问题是我的scrollview上的项目是按钮,如果按钮不在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;
}
我做了scrollview的大小,因为我需要分页才能正常工作。如果我将滚动视图宽度扩展为全宽度,那么它将页面全宽(而不是一个图标)。有没有一种方法来编程设置分页位置? – spentak