我已经将UISlider子类化并通过这样做增加了宽度:
-(CGRect)trackRectForBounds:(CGRect)bounds {
bounds.size.height = 50;
return bounds;
}
改变了拇指图像:
- (void)drawRect:(CGRect)rect {
// Drawing code
[self setThumbImage:[UIImage imageNamed:@"icon_circle"] forState:UIControlStateNormal];
}
但这种情况正在发生:
最小曲目图像从中心开始。我想从拇指结束开始。所以最初,直到拇指它应该是蓝色,当我拖动它直到结束时整个滑块应该是蓝色但在滑块的末端,滑块不是弯曲的。它有锋利的边缘。我该怎么做才能做到这一点?
答案 0 :(得分:2)
无法找到很多帮助,所以我自己定制了一个。它也可以在GitHub上找到。 https://github.com/bhavukjain1/SlideToActionSlideriOS
答案 1 :(得分:0)
您是否设置了以下属性?
UIImage *minImage = [[UIImage imageNamed:@"slider_minimum.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 0)];
UIImage *maxImage = [[UIImage imageNamed:@"slider_maximum.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 5)];
UIImage *thumbImage = [UIImage imageNamed:@"sliderhandle.png"];
[[UISlider appearance] setMaximumTrackImage:maxImage forState:UIControlStateNormal];
[[UISlider appearance] setMinimumTrackImage:minImage forState:UIControlStateNormal];
[[UISlider appearance] setThumbImage:thumbImage forState:UIControlStateNormal];
}
如果是这样,请查看this tutorial如何创建自定义滑块,它附带一个示例项目,通过比较您的实现与工作实现,可能更容易找到您的错误。
答案 2 :(得分:0)
解决矩形角问题,在drawRect
中self.layer.cornerRadius = 25;
self.clipsToBounds = YES;
要在拖动时显示正确的图像,您还需要设置它:
[self setThumbImage:[UIImage imageNamed:@"icon_circle"] forState:UIControlStateHighlighted];