如何解决UICollectionView不能下拉刷新问题

简介: 如何解决UICollectionView不能下拉刷新问题

最近遇到UICollectionView显示的所有单元格的高度总和不超过屏幕高度,结果遇到无法下拉刷新,监控不到滚动时间就是把滚动条设置上去也没有任何效果。使用UITableView显示数据下拉刷新正常。

后来找度娘和查看UICollectionView的接口文档。发现UICollectionView默认的alwaysBounceVertical属性是NO,当该属性为NO时,显示的单元格总高度和分区头尾高度的和小于表格的高度时,禁止UICollectionView上下滑动。

我设置_collectionView.alwaysBounceVertical = YES;后终于可以触发下拉刷新组件进行下拉刷新了。


@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;

简言之,UITableView和UIScrollView、UICollectionView的alwaysBounceVertical默认属性相反。


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


注意:你计算的单元格总高度计算如果计算的比实际表格小一些(小一个像素也可以),你设置alwaysBounceVertical属性为NO,也能下拉刷新。若你的数据不显示满屏,不想触发下拉刷,一定要设置的表格高度不能比单元格的总高度小。


目录
相关文章
|
iOS开发
iOS开发 - 让tableView不能下拉刷新,可以上拉加载
iOS开发 - 让tableView不能下拉刷新,可以上拉加载
279 0
|
iOS开发
iOS 开发 - tableView内嵌scrollView时,在plus上滑动scrollView时和tableView有冲突
iOS 开发 - tableView内嵌scrollView时,在plus上滑动scrollView时和tableView有冲突
139 0
|
iOS开发
iOS UITableViewCell嵌套CollectionView,tableview和collectionview同时滑动bug修复
iOS UITableViewCell嵌套CollectionView,tableview和collectionview同时滑动bug修复
935 0
|
API
为RecyclerView添加下拉刷新功能
在之前的文章中,我们实现了带有header和footer功能的WrapRecyclerView。 现今App中列表的下拉刷新和上拉加载已经是一种习惯了,这两个操作也确实方便很多。 为RecyclerView添加这个功能可以通过多种方法,这里我选用了一种简单的做法。基于pulltorefresh这个库。
165 0
|
iOS开发
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView(一)
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView
243 0
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView(一)
|
iOS开发
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView(二)
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView
341 0
|
iOS开发
iOS开发之UIScrollView无限滚动
UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。
931 0

热门文章

最新文章