カスタムUISliderの外観を作成(または試行)しようとしていますが、水平ですが、はるかに背が高いです。私には2つの問題があります。UISliderカスタムイメージと親指の高さ?
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つの画像があります。これらは画像であり、デバイス上でどのように見えるかは正しくありません。
画像を投稿できません。ここには、コンポーネントを示すlink to 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));
}
ありがとうございました。
画像へのリンクが壊れています – Asahi