ios - UIRefreshControl for "Pull Up"刷新?

标签 ios objective-c uicollectionview uirefreshcontrol

如何将 UIRefreshControl 添加到 UIColloectionView 的底部?这意味着向上滚动(查看旧数据或其他内容)时它是如何工作的?

最佳答案

您不能使用 UIRefreshControl 来做到这一点,但如果您可以使用更简单的解决方案,您可以将 Collection View 设置为在滚动到底部时自动加载更多数据. (顺便说一句,这是一个更常见的用户界面……上拉刷新并不常见,但当你触底时自动检索更多数据是常见的。)

最原始的形式是响应 UIScrollViewDelegate 方法并确定您是否滚动到 Collection View 的底部(它本身是 的子类>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
        }
    }
}

更好的是,如果您有更多数据要加载,请在底部显示一个单元格,上面写着“请稍候,加载更多数据”,也许还有 UIActivityIndi​​catorView。例如,如果您有更多数据要加载,请在末尾添加一个包含此单元格的部分。如果您正确地格式化这个额外的单元格(例如,一个单元格一直贯穿整个 Collection View ),它绝对可以呈现您正在寻找的效果。

关于ios - UIRefreshControl for "Pull Up"刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915018/

相关文章:

ios - 保留UIWebView,以后再显示?

ios - 未声明委托(delegate)?

ios - 为什么我的 IBOutlets 不会出现在 Interface Builder 的 Outlets 列表中?

ios - 使用 UIAutomation 从文本字段中获取值

iphone - UIView autoResizing 有时会起作用

ios - 在按钮周围添加 CAShapeLayer

iphone - NSInternalInconsistencyException 未捕获的异常 'NSInternalInconsistencyException',原因 : 'Could not load NIB in bundle: NSBundle with name

ios - 通过发送 "ID"作为参数,将数据从一个 collectionView 单元格传递到 swift 4 中的其他 Collection View Controller

ios - 将第一个和最后一个 UICollectionViewCell 的位置设置在 UICollectionView 的中心

swift - 如何在swift 4中的 Collection View 中实现字符串数组的分页