我在地图视图的顶部显示了我的表视图。我想向用户显示tableView是可滚动的。这是我的主流话题:Swift - How to attach bar to the top of table view?
我尝试使用
self.tableView.flashScrollIndicators()
在我的ViewDidLoad()方法中,但这不会改变任何内容,表视图看起来与以前完全相同。我读到的建议可能是由于重新加载tableView并用数据填充它,而创建的tableView是空的。尽管如此,我尝试在其他项目中粘贴flashScrollIndicators()方法,其中使用单元格立即创建表格 - 再次没有显着差异。
我做错了什么或在错误的地方使用该方法?
答案 0 :(得分:5)
您在错误的地方使用该方法。在viewDidLoad
中,视图刚刚完成加载。它还没有显示出来。一个安全的替代方法是将呼叫转移到您的视图控制器的viewDidAppear:
方法,以确保您不会尝试闪烁滚动指示器,直到视图已经在屏幕上。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.tableView.flashScrollIndicators()
}
答案 1 :(得分:5)
如果有人仍然在解决这个问题,这是我的工作解决方案 - 适用于iOS 11.在我的情况下,flashScrollIndicators()
在第一次调用viewDidAppear(animated:)
时无效。延迟调用flashScrollIndicators()
可以解决问题。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.asyncAfter(deadline: (.now() + .milliseconds(500))) {
self.collectionView.flashScrollIndicators()
}
}
答案 2 :(得分:0)
快捷键4
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tableView.flashScrollIndicators()
}