iOS UICollectionView 推送刷新时的意外行为

Posted

技术标签:

【中文标题】iOS UICollectionView 推送刷新时的意外行为【英文标题】:iOS UICollectionView Unexpected behavior on push to refresh 【发布时间】:2018-10-31 13:27:45 【问题描述】:

我正在尝试在我的 collectionView 上实现推送刷新,代码就是它。

private lazy var refreshControl : UIRefreshControl = 
    let frame = CGRect(x: 0, y: 0, width: 30, height: 30)
    let control = UIRefreshControl(frame: frame)
    control.addTarget(self, action: #selector(getAllJobs), for: .valueChanged)
    return control
()

collectionView.refreshControl = refreshControl

【问题讨论】:

详细解释问题。 【参考方案1】:

UIRefreshControl无需设置框架

我通常使用以下步骤来实现它:

在类属性块中:

let refreshControl: UIRefreshControl = UIRefreshControl()

viewDidLoad:

collectionView.alwaysBounceVertical = true
collectionView.refreshControl = refreshControl
refreshControl.addTarget(self, action: #selector(loadData), for: .valueChanged)

类主体中的某处:

// Refresh handler
@objc func loadData() 
        // Your refresh-code here

希望对你有帮助。

附:有时会出现刷新控制闪烁错误(与您的类似)。可以通过在 viewDidLoad() 方法中添加:extendedLayoutIncludesOpaqueBars = true 来解决。

【讨论】:

以上是关于iOS UICollectionView 推送刷新时的意外行为的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 在后台推送通知上刷新数据(发出 Api 请求)

iOS解决UICollectionView中使用reloadItemsAtIndexPaths进行局部cell更新导致视图重叠问题

如何以编程方式推送 UICollectionView? [复制]

UICollectionView 不刷新

使用UICollectionView自定义样式01-水平线性布局

Objective C - 使用导航推送调用 UICollectionview