問題は、tintColor を取得しようとしているということですが、デフォルトのバニラ 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
}
結果は次のとおりです(上の画像は前、下の画像は後):