ios - 在 Swift 3 中调用 flashScrollIndicators() 时如何更改滚动条的颜色

标签 ios swift xcode

我刚刚发现了如何正确使用 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()
}

虽然这是可能的,但出于以下几个原因我不推荐它:

  1. 它很脆弱。由于这不是现成的公共(public) API,因此不能保证它在未来的 iOS 版本中有效。

  2. 这可能是一个糟糕的设计选择。您真的想让用户注意不同颜色的滚动条吗?大多数熟悉其他应用程序的用户都习惯了滚动条的默认外观,因此无需过多额外注意即可传达它们在 View 中的位置。而且我刚试的时候看起来不太好。

另一种解决方案是简单地将滚动指示器样式设置为可用选项之一(defaultwhiteblack)。

tableView.indicatorStyle = .default

关于ios - 在 Swift 3 中调用 flashScrollIndicators() 时如何更改滚动条的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104427/

相关文章:

ios - 在新 Controller 标题中传递了 UIButton AttributeTitle

ios - 在 Swift 中以编程方式动态 UITableView 单元格高度 IOS7

iphone - 通过代码更改选定的 TabBarItem?

ios - 大于或等于约束无法正常工作

ios - 如何在 Swift 中使用 UIWebView 管理 cookie

swift - 无法从特定 URL 下载图像

ios - 只允许一个 View Controller 的所有方向

ios - Pod 规范中的 Cocoapods 依赖项不起作用

ios - NavigationView 中意外填充 Swift UI 列表

ios - 当用户在表格 View 中向下滚动时隐藏 View