原理
UIScrollView的滚动,真正滚动的不是scrollView本身,而是它的content。scrollView根据自身的frame.size和它的content的size,从而计算content的滚动。正常情况下,content的size是大雨scrollView的,这样就能够任意的滚动
所以在scrollView的content的宽度小于或等于scrollView.frame.size.width的时候,没有办法做横向的滚动,因为content已经全部展示在scrollView中了,没有滚动的必要。
同理,在scrollView的content的高度小于或等于scrollView.frame.size.height的时候,没有办法做纵向的滚动。
实现
现在咱们要做的就是在代码里面针对性的进行修改,以禁止竖向滚动为例:
- (void)viewDidLoad
{
[super viewDidLoad];
// 使得contentSize的height等于_scroller的高度,就能禁用纵向滚动
self.scroller.contentSize = CGSizeMake(640, _scroller.frame.size.height);
_scroller.delegate = self;
}
参考文献
Disabling vertical scrolling in UIScrollView
原创内容,欢迎转载 😊