我正在創建(或嘗試)自定義UISlider外觀,仍然水平但高得多。我有兩個問題。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];
我有三個圖像,最小,最大和拇指。這些是圖像以及它們在設備上的外觀,這是不正確的。
我還沒有發佈圖片,這裏顯示的是一個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 2014-07-29 09:06:23