【发布时间】:2016-01-15 11:33:02
【问题描述】:
当我从数据源中清除所有数据并重新加载 tableView 时,下拉刷新不再可用。即使在空的 tableView 上,我如何也可以启用 pull-to-refresh?
override func viewDidLoad() {
super.viewDidLoad()
...
// Pull to refresh for iPhone
refreshControl?.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
tableView.tableFooterView = UIView(frame: CGRectZero) // To remove separator line on empty cells
tableView.estimatedRowHeight = Constants.DetailTableView.estimatedRowHeight
tableView.rowHeight = UITableViewAutomaticDimension
setupRefreshControl()
}
private func setupRefreshControl() {
// If on iPhone, List becomes the pull-to-refresh handler and the delegate
if UIScreen.mainScreen().traitCollection.horizontalSizeClass == .Compact {
SyncService.shared.delegate = self
refreshControl?.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
refreshControl?.tintColor = UIColor.whiteColor()
} else {
// Otherwise disable the refresh control in List
refreshControl = nil
}
}
【问题讨论】:
-
你的 refresh() 函数在哪里?
-
如果你的数据是空的,你是否隐藏了tableview
-
刷新控制是在storyboard里设置的,忘了说了。如果细胞存在,它会很好地工作。如果它是空的,我不会隐藏 tableview。我只是通常每次都重新加载数据。
-
显示您正在刷新/获取数据的代码。
-
@the_UB:已解决,感谢您为我指明正确的方向。在表刷新功能中,我实际上有代码显示一些“空表”视图以提醒用户表视图为空,并且该视图位于表视图的视图之上,因此阻止了交互。我修复了视图的图层,现在它可以工作了。非常感谢。
标签: ios swift uitableview uirefreshcontrol