【Objective-C】UISliderカスタマイズと注意点【Xcode11 / iOS13】

こういう人に向けて発信しています。
・UISliderをカスタマイズしたい人
・画像セットがうまくいかない人
・Objective-C初心者

コード(参考から引用)

    //スライダー初期化
   UISlider *slider = [[UISlider alloc] init];
   slider.frame = CGRectMake(0, 0, 250, 100);
   slider.minimumValue = 0.0;
   slider.maximumValue = 1.0;
   slider.value = 0.5;
   slider.center = self.view.center;
   
   //スライダーのデザインをカスタマイズ
   UIImage *imageForThumb = [UIImage imageNamed:@"slider_thumb.png"];
   UIImage *imageMinBase = [UIImage imageNamed:@"sizeLeft.png"];
   UIImage *imageForMin = [imageMinBase stretchableImageWithLeftCapWidth:4 topCapHeight:0];
   UIImage *imageMaxBase = [UIImage imageNamed:@"sizeRight.png"];
   UIImage *imageForMax = [imageMaxBase stretchableImageWithLeftCapWidth:4 topCapHeight:0];
   [slider setThumbImage:imageForThumb forState:UIControlStateNormal];
   [slider setThumbImage:imageForThumb forState:UIControlStateHighlighted];
   [slider setMinimumTrackImage:imageForMin forState:UIControlStateNormal];
   [slider setMaximumTrackImage:imageForMax forState:UIControlStateNormal];
   
   //スライダーを画面に追加
   [self.view addSubview:slider];

本当に分かりやすいコードでした、本記事は100%引用です。

補足:画像が潰れてしまう場合のトラブルシューティング

このままだと引用記事紹介になってしまうので、
補足で説明します。

画像1

画像2

このような画像をセットして、左端・右端が潰れる場合があります。

それは画像サイズが50なのに、スライドの高さが25なので
アプリ側で縮小しているからおかしくなります。

なのでスライダーで用いている高さよりも
同じかもしくは、小さい画像データを用意しましょう。
(例:画像 14*14 、スライダー 200*14)

参考

https://anthrgrnwrld.hatenablog.com/entry/2016/08/18/124735


この記事が気に入ったらサポートをしてみませんか?