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

AKF*_*ish 12 ios

UIScrollView启用了分页并设置了它,clipToBounds = NO以便我可以看到当前页面外部.

我想要的是让用户能够滚动UIScrollView整个可见区域,而不仅仅是当前页面的一部分.

我该如何实现呢?

谢谢.

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

这意味着我不能只调整大小UIScrollView以获得我想要的而不会影响分页功能,对吧?

Bas*_*ian 14

将scrollview放入uiview并禁用clipsToBoundsscrollview.scrollview必须是您要分页的大小.你会看到滚动视图之外的内容,但分页仍然是相同的.您可以激活clipsToBounce外部视图以限制滚动视图的大小.

覆盖hitTest视图以将触摸重定向到滚动视图...然后您还可以通过触摸滚动视图外部进行滚动.


Evg*_*kov 7

为什么不调整scrollView的大小以使其适合您需要的区域?

不确定它是否有用,但尝试覆盖UIScrollView pointInside方法

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

  • 覆盖pointInside:withEvent:在滚动视图中包含superview中的所有内容为我工作. (3认同)