我尝试修改UIScrollView指标的颜色。在我的例子中是一个表格视图。 问题是,在swift 3中我使用了代码
override func scrollViewDidScroll(_ scrollView: UIScrollView){
let verticalIndicator: UIImageView = (scrollView.subviews[(scrollView.subviews.count - 1)] as! UIImageView)
verticalIndicator.backgroundColor = Color.red
}
它完美而且有效。 现在Swift 4中的相同代码无法正常工作。 我试过
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let color = UIColor.red
guard
let verticalIndicator = scrollView.subviews.last as? UIImageView,
verticalIndicator.backgroundColor != color,
verticalIndicator.image?.renderingMode != .alwaysTemplate
else { return }
verticalIndicator.layer.masksToBounds = true
verticalIndicator.layer.cornerRadius = verticalIndicator.frame.width / 2
verticalIndicator.backgroundColor = color
verticalIndicator.image = verticalIndicator.image?.withRenderingMode(.alwaysTemplate)
verticalIndicator.tintColor = .clear
}
但没有工作。滚动指示符存在于我的视图中,并且可以使用" Debug View Hierarchy"但就像背景透明一样。