您的位置:首页 > 移动开发 > IOS开发

slider-滑竿

2016-03-01 09:34 459 查看

一、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];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示

你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:
UIControlStateNormal
UIControlStateHighlighted

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息