我的视图控制器有一个表视图,我在这个表视图中填充不同部分的视图。我正在尝试向此表视图添加刷新控件。我实现的内容如下所示。
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------------")
}
接下来,当我拉下表视图进行刷新时,刷新控件(设置时为红色)可见。但是,不会调用目标函数。
我的视图控制器在一个选项卡栏控制器中,它嵌入在导航控制器中。我猜这个问题与视图层次结构有关,因为当我在没有导航栏和选项卡栏的单独项目中尝试相同的代码时,它工作得很好。但是我不知道现在的问题是什么。对解决这个问题有什么建议吗?谢谢。
EDIT:我在不同的模拟器中测试了它: 6,6s,6s+,7,7+,8,8+,X。我发现上面的代码在包括X在内的所有加号版本中都运行得很好。但是,所有的模拟器都运行iOS11.2,所以我仍然不能弄清楚是什么导致了这个问题。
https://stackoverflow.com/questions/49725653
复制相似问题