我正在创建(或尝试)自定义 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];
我有三个图像,最小图像、最大图像和拇指图像。这些是图像以及它们在设备上的外观,这是不正确的。
我还不能发布图片,所以这里是其中显示了组件。
滑块在拇指右侧应为奶油色,在左侧应为粉红色。但这并没有发生。
这就是问题 1。问题 2 是默认的拇指尺寸太小。我正在使用这个:UISlider高度黑客 http://mpatric.blogspot.co.uk/2009/04/more-responsive-sliders-on-iphone.html尝试增加拇指的高度,但遗憾的是它使拇指变宽而不是变高。所以我请求帮助使该区域更高而不是更宽,并且想知道为什么我的粉红色图像被忽略?
感谢您的任何帮助。
如果有帮助,这是我的 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));
}
谢谢。