我刚刚发现了如何正确使用 flashScrollIndicator,但是当滚动条闪烁时我无法更改它的颜色。我想把它改成红色。这就是我在 viewTable 加载时闪烁滚动条的功能:
override func viewDidAppear(_ animated: Bool) {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tableView.flashScrollIndicators()
}
我还能够创建一个真正改变滚动条的函数,但只有当用户真正滚动时,而不是当滚动条只是闪烁时。如果它有任何帮助,这是它的代码:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let verticalIndicator = scrollView.subviews.last as? UIImageView
verticalIndicator?.backgroundColor = UIColor.red
}
任何帮助都会很棒!谢谢。
最佳答案
您只需要将这两部分放在一起即可。如果将颜色更改代码添加到 viewDidAppear
,它应该像在 scrollViewDidScroll
中一样工作。
override func viewDidAppear(_ animated: Bool) {
let verticalIndicator = tableView.subviews.last as? UIImageView
verticalIndicator?.backgroundColor = UIColor.red
self.tableView.flashScrollIndicators()
}
虽然这是可能的,但出于以下几个原因我不推荐它:
它很脆弱。由于这不是现成的公共(public) API,因此不能保证它在未来的 iOS 版本中有效。
这可能是一个糟糕的设计选择。您真的想让用户注意不同颜色的滚动条吗?大多数熟悉其他应用程序的用户都习惯了滚动条的默认外观,因此无需过多额外注意即可传达它们在 View 中的位置。而且我刚试的时候看起来不太好。
另一种解决方案是简单地将滚动指示器样式设置为可用选项之一(default
、white
或black
)。
tableView.indicatorStyle = .default
关于ios - 在 Swift 3 中调用 flashScrollIndicators() 时如何更改滚动条的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104427/