UIScrollView的alwaysBounceVertical、bounces、pagingEnabled属性

在开发中经常会用到UIScrollView控件,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
@property(nonatomic,getter=isPagingEnabled) BOOL          pagingEnabled API_UNAVAILABLE(tvos);// default NO. if YES, stop on multiples of view bounds
@property(nonatomic,getter=isScrollEnabled) BOOL          scrollEnabled;                  // default YES. turn off any dragging temporarily

bounces:
用来控制滚动视图是否反弹,bounces默认是YES,当它为NO的时候,其他两个属性值设置无效,滚动视图无法反弹;只有当bounces是YES的时候,其他两个属性设置才有效,

alwaysBounceVertical :
设置垂直方向的反弹是否有效.

alwaysBounceHorizontal :
设置水平方向的反弹是否有效;

UITableView默认情况下 alwaysBounceVertical是YES,alwaysBounceHorizontal是NO;

UIScrollView和UICollectionView默认情况下alwaysBounceVertical和alwaysBounceHorizontal 都是NO;
只有当内容视图的尺寸超过了自己的bounds的尺寸的时候,相应方向上反弹属性才会自动设置为YES;

因此,实现滚动视图的下拉和上拉刷新的时候,就要相应的打开alwaysBounceVertical属性,才能实现下拉和上拉功能;例如UICollectionView页面只有一条数据的时候,内容视图没用占据到UICollectionView的整个bounds,当前就无法滚动,这个时候就要设置alwaysBounceVertical为YES,才能在垂直方向实现反弹进而实现上下拉刷新功能。

你可能感兴趣的:(UIScrollView的alwaysBounceVertical、bounces、pagingEnabled属性)