UISlider 滑块图标 已滑动图片 未滑动图片 自定义

经过笔者深入研究,实现对UISlider高度自定义,效果如下:



首先设置滑块的样式--图形:

[slider setThumbImage:[UIImage imageNamed:@"sc_sliderBtn"] forState:UIControlStateNormal];


自定义滑块的大小--需要重写父类的下方法:

-(CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {

rect.origin.x=rect.origin.x-10;

rect.size.width=rect.size.width+20;
return CGRectInset([super thumbRectForBounds:bounds trackRect:rect value:value],10,10);
}


接下来是滑动时覆盖的图或者颜色设置:

UIImage *image = [[UIImage imageNamed:@"sc_slider"] resizableImageWithCapInsets:UIEdgeInsetsZero];//图片模式,不设置的话会被压缩

[slider setMinimumTrackImage:image forState:UIControlStateNormal];//设置图片
//[slider setMinimumTrackTintColor:[UIColor redColor]];//设置颜色

然后是未覆盖的图或颜色设置:

UIImage *image2 = [[UIImage imageNamed:@"sc_slider2"] resizableImageWithCapInsets:UIEdgeInsetsZero];//图片模式,不设置的话会被压缩

[slider setMaximumTrackImage:image2 forState:UIControlStateNormal];//设置图片

//[slider setMaximumTrackTintColor:[UIColor lightGrayColor]];//颜色设置

最后~~~ Build一下~~ 到此,UISlider完全按照自己的想法来了~~

你可能感兴趣的:(UISlider 滑块图标 已滑动图片 未滑动图片 自定义)