2012-04-25 6 views
2

カスタム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)); 
} 

ありがとうございました。

+0

画像へのリンクが壊れています – Asahi

答えて

0

view did loadメソッドでスライダーの値を設定すると問題が発生していることが判明しました。私はInterface Builderでそれらを設定し、それは修正されました。 IBに設定されると、問題がなければコードで調整することができます。

私の実際のデバイスでテストしているわけではないので、私の疑問を抱いています。そのため、数週間でデバイスに取り付けるまでその質問を一時停止します。

+0

私は現在この機器でテストを行っていますが、タッチエリアの問題は元のスライダーの高さであるため、解決する必要があります。とにかくスライダの中央部分に自然に触れることは大きな問題ではありません。 – mrEmpty

+0

この問題をどうやって解決しましたか? @mrEmpty – jonypz

+0

私はしませんでしたが、ユーザーとテストしたときに問題として提起されたことはありませんでした。 – mrEmpty