カスタム UISlider の外観を作成しています (または作成しようとしています)。まだ水平ですが、はるかに高くなっています。2 つの問題があります。
1.これは、スライダーに画像を取得するために使用しているコードです。
UIImage *minImage = [UIImage imageNamed:@"sliderMin.png"];
UIImage *maxImage = [UIImage imageNamed:@"sliderMax.png"];
UIImage *thumbImage = [UIImage imageNamed:@"sliderThumb.png"];
minImage = [minImage stretchableImageWithLeftCapWidth:33.0 topCapHeight:0.0];
maxImage = [maxImage stretchableImageWithLeftCapWidth:33.0 topCapHeight:0.0];
// thumbImage = [minImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
[_contrastSlider setMinimumTrackImage:minImage forState:UIControlStateNormal];
[_contrastSlider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
[_contrastSlider setThumbImage:thumbImage forState:UIControlStateNormal];
minImage = nil;
maxImage = nil;
thumbImage = nil;
[_contrastSlider setMinimumValue:0.0];
[_contrastSlider setMaximumValue:100.00];
[_contrastSlider setValue:25.0];
最小、最大、親指の 3 つの画像があります。これらは画像とデバイス上での表示ですが、正しくありません。
まだ画像を投稿できないので、コンポーネントを表示するリンクをMYSlider.jpeg
次に示します。
スライダーは、親指の右側がクリーム色、左側がピンク色になります。しかし、これは起こっていません。
それが問題 1 です。問題 2 は、親指のサイズのデフォルトが小さすぎることです。私はこれを使用しています:UISlider Height Hackを使用して親指の高さを上げようとしていますが、悲しいことに、それは高さではなく幅を広げています。だから私は、領域を広くするのではなく、高くするための助けを求めており、なぜ私のピンクの画像が無視されているのだろうか?
助けてくれてありがとう。
それが役立つ場合、これが私の UISlider サブクラス .m です。
-(BOOL) pointInside:(CGPoint)point withEvent:(UIEvent*)event {
CGRect bounds = self.bounds;
bounds = CGRectInset(bounds, -10, -8);
return CGRectContainsPoint(bounds, point);
}
-(BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
CGRect bounds = self.bounds;
float thumbPercent = (self.value - self.minimumValue) / (self.maximumValue - self.minimumValue);
float thumbPos = THUMB_SIZE + (thumbPercent * (bounds.size.width - (2 * THUMB_SIZE)));
CGPoint touchPoint = [touch locationInView:self];
return (touchPoint.x >= (thumbPos - EFFECTIVE_THUMB_SIZE) && touchPoint.x <= (thumbPos + EFFECTIVE_THUMB_SIZE));
}
ありがとうございました。