UIRefreshControl用于"拉起"刷新?

时间:2013-02-16 20:57:08

标签: ios objective-c uicollectionview uirefreshcontrol

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

3 个答案:

答案 0 :(得分: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
        }
    }
}

更好的是,如果您要加载更多数据,请在底部显示一个单元格,其中显示“请稍候,加载更多数据”,可能使用UIActivityIndicatorView。例如,如果要加载更多数据,请使用此单元格向末尾添加一个部分。如果你正确地格式化这个额外的单元格(例如,整个集合视图中的单个单元格),它肯定会呈现你正在寻找的效果。

答案 1 :(得分:4)

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

答案 2 :(得分:-2)

你做不到。您根本无法真正自定义UIRefreshControl