iOS开发。 如何扩展UIScrollView的滚动事件响应区域?

我有一个UIScrollView的分页启用,并设置其clipToBounds = NO以便我可以看到外面的当前页面。

我想要的是让用户滚动UIScrollView在其整个可见区域,不仅是当前页面的一部分。

我怎样才能实现呢?

谢谢。

PS根据苹果的文档(http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html),如果pagingEnabled属性的值是YES ,滚动视图停止用户滚动时滚动视图边界的倍数。

这意味着我不能调整UIScrollView大小来获得我想要的function而不影响分页function,对吗?

把scrollview放到一个uview中,禁用clipsToBounds的clipsToBounds。 滚动视图必须是你想要分页的大小。 你会看到滚动视图以外的内容,但分页仍然是一样的。 您可以为外部视图激活clipsToBounce ,以限制clipsToBounce视图的大小。

覆盖视图的hitTest以将触摸redirect到滚动视图…然后您也可以通过触摸滚动视图之外的方式进行滚动。

你为什么不调整你的scrollView,使它适合你所需要的区域?

不知道是否会帮助,但尝试重写UIScrollView pointInside方法

 - (BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event { CGRect newBounds = self.bounds; newBounds = CGRectInset(bounds, 0, -100.0f); return CGRectContainsPoint(newBounds, point); }