【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%引用です。
補足:画像が潰れてしまう場合のトラブルシューティング
このままだと引用記事紹介になってしまうので、
補足で説明します。
このような画像をセットして、左端・右端が潰れる場合があります。
それは画像サイズが50なのに、スライドの高さが25なので
アプリ側で縮小しているからおかしくなります。
なのでスライダーで用いている高さよりも
同じかもしくは、小さい画像データを用意しましょう。
(例:画像 14*14 、スライダー 200*14)
参考
https://anthrgrnwrld.hatenablog.com/entry/2016/08/18/124735