UISlider用法和UIProgressView用法

10 篇文章 0 订阅

转自:http://blog.csdn.net/lvdezhou/article/details/50055009


一.UISlider用法

1、基本用法:

[objc]  view plain  copy
  1. CGFloat width = [[UIScreen mainScreen] bounds].size.width;  
  2. CGRect sliderFrame = CGRectMake(20100, width - 4050);//这里无论高度设为多少,都按其自己的默认高度显示  
  3. UISlider * slider = [[UISlider alloc] initWithFrame:sliderFrame];  
  4. slider.minimumValue = 0;//设置最小值  
  5. slider.maximumValue = 1;//设置最大值  
  6. slider.value = 0.3;//设置默认值  
  7. [self.view addSubview:slider];  
效果:

2、注册响应事件:

[objc]  view plain  copy
  1. slider.continuous = YES;//默认YES  如果设置为NO,则每次滑块停止移动后才触发事件  
  2. [slider addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];  

[objc]  view plain  copy
  1. - (void) sliderChange:(id) sender {  
  2.     if ([sender isKindOfClass:[UISlider class]]) {  
  3.         UISlider * slider = sender;  
  4.         CGFloat value = slider.value;  
  5.         NSLog(@"%f", value);  
  6.         self.view.backgroundColor = [UIColor colorWithRed:value green:value blue:value alpha:value];  
  7.     }  
  8. }  

3、给滑块,最小值一边,最大值一边配置颜色

[objc]  view plain  copy
  1. slider.minimumTrackTintColor = [UIColor redColor];  
  2. slider.maximumTrackTintColor = [UIColor yellowColor];  
  3. slider.thumbTintColor = [UIColor purpleColor];  
效果:

4、给滑块最大值、最小值一边设置图片:

[objc]  view plain  copy
  1. UIImage * image1 = [UIImage imageNamed:@"apple.jpg"];  
  2. UIImage * image2 = [UIImage imageNamed:@"dog.png"];  
  3. slider.minimumValueImage = image1;  
  4. slider.maximumValueImage = image2;  
看图最容易理解:

5、手动设置滑块的值,并是否动画移动过去:

[objc]  view plain  copy
  1. - (void)setValue:(float)value animated:(BOOL)animated; // move slider at fixed velocity (i.e. duration depends on distance). does not send action  

6、给滑块、滑道设置图片

注:关于滑道和滑块的图片如果自己找不到,就别找了,自己做几个,在线PS很容易,做测试用的图片却是足够了,不会就自己百度一下吧,学一点儿是一点儿

下面的滑块以及滑道就是我自己做的,很粗糙,不过测试用嘛

[objc]  view plain  copy
  1. - (void)setThumbImage:(nullable UIImage *)image forState:(UIControlState)state; //给滑动按钮设置图片  
  2. - (void)setMinimumTrackImage:(nullable UIImage *)image forState:(UIControlState)state;//给滑道左侧设置图片  
  3. - (void)setMaximumTrackImage:(nullable UIImage *)image forState:(UIControlState)state;//给滑道右侧设置图片  

测试代码:

[objc]  view plain  copy
  1. UIImage * image3 = [UIImage imageNamed:@"leftSlider.jpg"];  
  2. UIImage * image4 = [UIImage imageNamed:@"rightSlider.jpg"];  
  3. UIImage * image5 = [UIImage imageNamed:@"thumb1.jpg"];  
  4. UIImage * image6 = [UIImage imageNamed:@"thumb2.jpg"];  
  5. [slider setThumbImage:image5 forState:UIControlStateNormal];  
  6. [slider setThumbImage:image6 forState:UIControlStateHighlighted];  
  7. [slider setMinimumTrackImage:image3 forState:UIControlStateNormal];  
  8. [slider setMaximumTrackImage:image4 forState:UIControlStateNormal];  
初始状态:

点击状态:


7、得到当前滑块图片,左边滑道图片,右边滑道图片

[objc]  view plain  copy
  1. @property(nullable,nonatomic,readonlyUIImage *currentThumbImage;  
  2. @property(nullable,nonatomic,readonlyUIImage *currentMinimumTrackImage;  
  3. @property(nullable,nonatomic,readonlyUIImage *currentMaximumTrackImage;  

8、定制UISlider

可以自定义一个类继承自UISlider,然后重写这些方法,返回自定义的滑块的各个区域的大小

[objc]  view plain  copy
  1. - (CGRect)minimumValueImageRectForBounds:(CGRect)bounds;  //返回左边图片大小  
  2. - (CGRect)maximumValueImageRectForBounds:(CGRect)bounds;  //返回右边图片大小  
  3. - (CGRect)trackRectForBounds:(CGRect)bounds;              //返回滑道大小  
  4. - (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value;  //返回滑块大小  
一.UIProgressView用法

 //进度条
    self.videoProgress = [UIProgressView new];
    self.videoProgress.progress = 0.0;
    self.videoProgress.backgroundColor = TEXT_DARK_LIGHT_GREY;
    self.videoProgress.progressTintColor =  PINK_DARK_COLOR;
    self.videoProgress.trackTintColor = TEXT_DARK_LIGHT_GREY;
    [self.downToolView addSubview:self.videoProgress];
    [self.videoProgress mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerY.mas_equalTo(self.stateButton.mas_centerY);
        make.left.mas_equalTo(self.stateButton.mas_right).offset(5);
        make.width.mas_equalTo(SCREEN_WIDTH-3*TEXT_EDGE_DISTANCE-80);
        make.height.mas_equalTo(3.5);
    }];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值