
LOADING
【Swift】UISliderでminimumTrackTintColorが上手く変更できない場合
公開日
更新日
何故か引っかかってしまったやつ。
UISliderで最小値側の色を変えたいとき
mySlider.minimumTrackTintColor = UIColor.grayColor()
通常このように書くと思うのですが、minimumTrackTintColorを用いると下のようになってしまいます。
このグラデーションをつけたくないのですが、ついてしまう・・・・・。
またmaximumTrackTintColorというものもあり、こちらは最大値側のバーの色を変更するのですが、これはグラデーションがつきません。
tintColorを変更するとminimum側の色が変更される
こんな感じにしたい・・・
という場合はminimumTrackTintColorではなくtintColorを変更するとグラデーションしません。
mySlider.tintColor = UIColor.grayColor()
とりあえずこれで解決しました。
しかし両方グラデーションが必要な場合とかは試してないのでわからないです。
ちなみに・・・
なかなか解決できなかったのでとりあえず左側と右側それぞれに画像をつけることでそれっぽくみせるというか、解決?することもできます。
let sliderLeft = UIImage(named:"left.png")! as UIImage
let sliderRight = UIImage(named:"right.png")! as UIImage
mySlider.setMinimumTrackImage(sliderLeft, forState: .Normal)
mySlider.setMaximumTrackImage(sliderRight, forState: .Normal)
むん。
バーの高さを変更したり、つまみの画像を変更したりしていますがまた後々紹介します・・・。とりあえず進めます。
追記
(追記日: 2018-04-28)
時代を感じるなぁ。
とりあえず今は
let slider = UISlider(frame: CGRect(x:50,y:50,width:200,height:50))
slider.minimumTrackTintColor = UIColor.red
slider.maximumTrackTintColor = UIColor.blue
self.view.addSubview(slider)
で
<img src="/images/images/IMG_2620-300x78.jpg" alt="images/IMG_2620-300x78.jpg" />
という感じになります。
tintColorを変えても特にどこも変わらなかったんですけどどこが変わるんだろう・・・

公開日
更新日