Swift 4改变UIScrollView指示灯颜色

时间:2017-11-08 10:57:31

标签: ios swift3 uiscrollview swift4

我尝试修改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"但就像背景透明一样。

0 个答案:

没有答案