首页 > 解决方案 > Swift UIRefreshControl 在 iPhone 8 上不起作用

问题描述

我有一个UIRefreshControl适用于除 iPhone 8 之外的所有设备(既不适用于物理设备也不适用于模拟器)。

在 iPhone 8 上,刷新指示器在 3/4 处停止,并且从不调用刷新

当你把它一直拉下来时,它是这样的:

在此处输入图像描述

创建刷新控件:

lazy var refreshControl: UIRefreshControl = {
    let refreshControl = UIRefreshControl()
    refreshControl.addTarget(self, action:
        #selector(TeamViewController.handleRefresh(_:)),
                             for: UIControlEvents.valueChanged)
    refreshControl.tintColor = UIColor.red

    return refreshControl
}()

添加到视图:

if #available(iOS 10.0, *) {
    myCollectionView.refreshControl = refreshControl
} else {
    myCollectionView.addSubview(refreshControl)
}

标签: iosswiftuicollectionviewuikituirefreshcontrol

解决方案


我遇到了同样的问题,这是由于我在故事板中将视图控制器设置为自由形式作为模拟大小造成的。将其更改回已修复解决了该问题。

也可以使用以下方法修复:

override func viewDidLayoutSubviews() { refreshControl?.didMoveToSuperview() super.viewDidLayoutSubviews() }

UIRefreshControl 需要下拉太远


推荐阅读