我的视图控制器有一个表格视图,在其中我将我的视图填充到不同的部分中。我正在尝试向这个表格视图添加一个刷新控件。我实现的代码如下:
func setUpRefreshControl() {
let refreshControl = UIRefreshControl()
refreshControl.tintColor = UIColor.red
refreshControl.addTarget(self, action: #selector(handleRefresh(_: )), for: UIControlEvents.valueChanged)
if #available(iOS 10.0, *) {
tableView.refreshControl = refreshControl
} else {
tableView.addSubview(refreshControl)
}
}
@objc func handleRefresh(_ sender: UIRefreshControl) {
print("-----------REFRESHED------------")
}
接下来,当我下拉tableview以刷新时,刷新控件(设置为红色)是可见的。然而,目标函数未被调用。
我的视图控制器在选项卡控制器中,并嵌入导航控制器中。我猜问题与视图层次结构有关,因为当我在一个没有导航栏和选项卡的单独项目中尝试相同的代码时,它可以正常工作。但我无法弄清楚当前的问题是什么。有什么建议可以解决这个问题吗?谢谢。
编辑:我在不同的模拟器中进行了测试:6, 6s, 6s+, 7, 7+, 8, 8+, X。我发现上面的代码在所有plus版本包括X中都可以正常运行。然而,所有模拟器都在运行ios 11.2,所以我仍然无法弄清楚可能导致这个问题的原因。