UICollectionView不响应scrollViewDidScroll方法,看向alwaysBounceVertical这个属性!

滚动视图我们常用的: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,用来控制滚动视图是否反弹,当它为NO的时候,其他两个属性值设置无效,滚动视图无法反弹;只有当bounces是YES的时候,其他两个属性设置才有效.
alwaysBounceVertical设置垂直方向的反弹是否有效,
alwaysBounceHorizontal设置水平方向的反弹是否有效;

重点来了!!

UITableView默认情况下alwaysBounceVertical是YES,alwaysBounceHorizontal是NO;
UIScrollView和UICollectionView默认情况下alwaysBounceVertical和alwaysBounceHorizontal都是NO;

但是当内容视图的尺寸超过了自己的bounds的尺寸的时候,相应方向上反弹属性会自动设置为YES;


问题

之前没注意这个属性的时候,就导致,例如UICollectionView页面只有一条数据的时候,内容视图没用占据到UICollectionView的整个bounds,当前就无法滚动,导致页面不响应下面方法,视图联动的逻辑就写不出来。
UICollectionView不响应scrollViewDidScroll方法,看向alwaysBounceVertical这个属性!_第1张图片

解决

这个时候就要设置alwaysBounceVertical为YES,才能在垂直方向上响应到滚动相关的方法

你可能感兴趣的:(IOS功能笔记)