【Swift】UISliderでminimumTrackTintColorが上手く変更できない場合

何故か引っかかってしまったやつ。

 

UISliderで最小値側の色を変えたいとき

mySlider.minimumTrackTintColor = UIColor.grayColor()

通常このように書くと思うのですが、minimumTrackTintColorを用いると下のようになってしまいます。

IMG_6847

このグラデーションをつけたくないのですが、ついてしまう・・・・・。

またmaximumTrackTintColorというものもあり、こちらは最大値側のバーの色を変更するのですが、これはグラデーションがつきません。

 

tintColorを変更するとminimum側の色が変更される

こんな感じにしたい・・・

IMG_6851

という場合は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/29追記 Swift4で少しだけ
時代を感じるなぁ。

とりあえず今は
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)
という感じになります。 tintColorを変えても特にどこも変わらなかったんですけどどこが変わるんだろう・・・
Swift ,
コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

Write a Comment

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

記事を書くほどでもないけれどメモっておきたいこと

テスト投稿。

例えばiphone7 の画面サイズ

750 × 1334
半分375 × 667

iOS
more