UIRefreshControl为"拉起"刷新?

Bav*_*van 8 objective-c ios uicollectionview uirefreshcontrol

如何将UIRefreshControl添加到UIColloectionView的底部?这意味着当涉及到Scroll up(查看旧数据或其他内容)时它是如何工作的?

Rob*_*Rob 12

你不能UIRefreshControl这样做,但如果你对一个更简单的解决方案没问题,你可以设置你的集合视图,以便在滚动到底部时自动加载更多数据.(顺便提一下,这是一个更常见的用户界面...刷新上拉并不常见,但是当你触底时会自动检索更多数据.)

最原始的再现是响应UIScrollViewDelegate方法并确定你是否滚动到集合视图的底部(它本身是其子类UIScrollView):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
    {
        if (!self.isLoadingMoreData)
        {
            self.loadingMoreData = YES;

            // proceed with the loading of more data
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

更好的是,如果您要加载更多数据,请在底部显示一个单元格,上面写着"请等待,加载更多数据",也许还有一个UIActivityIndicatorView.例如,如果要加载更多数据,请使用此单元格向末尾添加一个部分.如果您正确格式化这个附加单元格(例如,整个集合视图中的单个单元格),它肯定可以呈现您正在寻找的效果.


小智 4

这是UIScrollView 类(UICollectionView 类的父级)的CCBottomRefreshControl类别,它实现了BottomRefreshControl属性。它与 iOS 6 和 7 本机刷新控件兼容。