一、slider的创建
slider是一个标准的UIControl,滑块的高也会被忽略,但是宽度不会。
代码创建:UISlider *slider = [[UISlideralloc]initWithFrame:CGRectMake(0, 400,320 , 20)];
二、slider的基本属性
1、设置滑块的范围,如果没有设置,会默认0-1
UISlider提供了两个属性来设置范围:mininumValue 上限
maxinumValue 下限
三、更改slider的外观
图片:
<span style="font-size:18px;"> UIImage *stetchLeftTrack= [UIImage imageNamed:@"拉杆-蓝.png"];
UIImage *stetchRightTrack = [UIImage imageNamed:@"拉杆-黑.png"];
UIImage *thumbImage = [UIImage imageNamed:@"拉杆钮.png"];
[ slider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[ slider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
[ slider setThumbImage:thumbImage forState:UIControlStateHighlighted];
[ slider setThumbImage:thumbImage forState:UIControlStateNormal];
</span>
纯色:
slider.minimumTrackTintColor = [UIColorredColor];
slider.maximumTrackTintColor = [UIColorredColor];
slider.thumbTintColor = [UIColorredColor];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示
你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:
UIControlStateNormalUIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected
四、增加事件
[_litresSlider addTarget:self action:@selector(litresSliderValueChanged) forControlEvents:UIControlEventValueChanged];
如果要在拖动中也触发,需要设置滑块的continuos 属性
_litresSlider.continuous = YES;
五、不等距的步长
<span style="font-size:18px;">- (void)viewDidLoad {
[super viewDidLoad];
slider = [[UISlider alloc] initWithFrame:self.view.bounds];
[self.view addSubview:slider];
numbers = @[@"1",@"11",@"23"];
NSInteger numberOfSteps = ((float)[numbers count] - 1);
slider.maximumValue = numberOfSteps;
slider.minimumValue = 0;
[slider addTarget:self
action:@selector(valueChanged:)
forControlEvents:UIControlEventValueChanged];
}
- (void)valueChanged:(UISlider *)sender {
NSUInteger index = (NSUInteger)(slider.value + 0.5);
[slider setValue:index animated:NO];
NSNumber *number = numbers[index];
NSLog(@"sliderIndex: %i", (int)index);
NSLog(@"number: %@", number);
}</span>
六、竖版slider
<span style="font-size:18px;"> CGAffineTransform rotation = CGAffineTransformMakeRotation(-1.57079633);
self.volumeSlider.transform = rotation;
//跟换Thumb
[self.volumeSlider setThumbImage:image1 forState:UIControlStateNormal];
// 跟换bar 并且实现拖动效果
//覆盖的图片
[self.volumeSlider setMinimumTrackImage:image2 forState:UIControlStateNormal];
//底片
[self.volumeSlider setMaximumTrackImage:image forState:UIControlStateNormal];</span>