好的,所以问题是您正在尝试获取 tintColor,但默认的 vanilla iOS8 非自定义 UISlider 没有使用 tintColor 来设置其颜色。
它使用 imageForState。
因此,您可以使用slider.minimumTrackImageForState(UIControlState.Normal)!
和slider.maximumTrackImageForState(UIControlState.Normal)!
方法获取图像。
但是,为了更具防御性,我建议尝试两种方法:
let minimumColor = slider.minimumTrackTintColor
let maximumColor = slider.maximumTrackTintColor
let minimumImage = slider.minimumTrackImageForState(UIControlState.Normal)
let maximumImage = slider.maximumTrackImageForState(UIControlState.Normal)
if let minimumColor = minimumColor {
slider.maximumTrackTintColor = minimumColor
} else if let minimumImage = minimumImage {
slider.setMaximumTrackImage(minimumImage, forState: .Normal)
} else {
// ok, something has changed the big way, just fallback on some color you like
}
if let maximumColor = maximumColor {
slider.minimumTrackTintColor = maximumColor
} else if let maximumImage = maximumImage {
slider.setMinimumTrackImage(maximumImage, forState: .Normal)
} else {
// ok, something has changed the big way, just fallback on some color you like
}
结果是(之前的上图,之后的下图):
