UISlider的一些用法
2018-05-31 本文已影响0人
Flandreko
UISlider属性
slider.minimumValue = 9;// 设置最小值
slider.maximumValue = 11;// 设置最大值
slider.continuous = YES;// 设置可连续变化
slider.minimumTrackTintColor = RGBA(45, 215, 135, 1);//滑块左边颜色
slider.maximumTrackTintColor = RGBA(222, 222, 222, 1);//滑块右边颜色
slider.thumbTintColor = [UIColor clearColor];//滑块颜色
[slider setValue:10 animated:YES];//滑块位置
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];//响应方法
//滑块图案
-(void)setThumbImage:(UIImage *)image forState:(UIControlState)state;
//设置滑块划过部分的线条图案
-(void)setMinimumTrackImage:(UIImage *)image forState:(UIControlState)state;
//设置滑块未划过部分的线条图案
-(void)setMaximumTrackImage:(UIImage *)image forState:(UIControlState)state;
Slider的滑块大小、自身高度、左右图片大小是可以改变的。我们需要在自定义Slider类中重写以下方法:
- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds; //返回左边图片大小
- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds; //返回右边图片大小
- (CGRect)trackRectForBounds:(CGRect)bounds; //返回滑道大小
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value; //返回滑块响应范围大小
例子:设置滑道大小,与滑块响应范围
#import "newSlider.h"
@implementation newSlider
- (CGRect)trackRectForBounds:(CGRect)bounds {
return CGRectMake(0, 0, ScreenWidth, 8);
}
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value{
bounds = [super thumbRectForBounds:bounds trackRect:rect value:value];
return CGRectMake(bounds.origin.x, bounds.origin.y, 20, 20);
}
@end