前言
使用GKPageScrollView
时,当内容使用UICollectionView
展示的时候,发现内容少的时候无法正滚动。
原因
滚动视图我们常用的:UIScrollView
,UICollectionView
,UITableView
,默认属性如下:
@property(nonatomic) BOOL bounces; // default YES. if YES, bounces past edge of content and back again
@property(nonatomic) BOOL alwaysBounceVertical; / default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag vertically
@property(nonatomic) BOOL alwaysBounceHorizontal; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag horizontally
bounces
默认是YES
,用来控制滚动视图是否具有反弹效果。
当bounces
为NO
的时候,其他两个属性值设置无效,滚动视图不具备反弹效果;
当bounces
是YES
的时候,其他两个属性设置才有效。
alwaysBounceVertical
设置垂直方向的反弹是否有效,设置为YES,则bounces
是YES
alwaysBounceHorizontal
设置水平方向的反弹是否有效,设置为YES,则bounces
是YES
注意1⚠️:UITableView
默认情况下alwaysBounceVertical
是YES
,alwaysBounceHorizontal
是NO
;
UIScrollView
和UICollectionView
默认情况下alwaysBounceVertical
和alwaysBounceHorizontal
都是NO
;
注意2⚠️:当内容视图的尺寸超过了自己的bounds
的尺寸的时候,相应方向上反弹属性会自动设置为YES
;
解决办法
那么问题就显而易见,因为UICollectionView
没有设置对应的属性,当内容不足以超过当前屏幕时,弹性属性为NO
,所以内容无法滚动,导致代理方法无法执行
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
}
我们只需要将对应滚动方向属性设置为YES
即可。