美文网首页iOS
2iOS-UIProgress进度条、UISlider拖动条

2iOS-UIProgress进度条、UISlider拖动条

作者: h2coder | 来源:发表于2021-06-30 09:32 被阅读0次

    Android中,进度条为ProgressBar、拖动条控件为SeekBar。而iOS则分别为UIProgress和UISlider。进度条和拖动条在音乐播放模块中经常出现。

    创建UIProgress进度条

    • UIProgressView进度条,通过alloc和init进行创建和初始化。
    • 进度条的位置、宽度可设置,但高度不可设置。
    @interface ViewController ()
    
    @property(retain, nonatomic) UISlider* slider;
    
    @end
    
    @implementation ViewController
    
    /**
     * 懒加载进度条
     */
    - (UIProgressView *)progressView {
        if (_progressView == nil) {
            //滑动条
            _progressView = [[UIProgressView alloc] init];
            //设置位置,宽度可设置,但高度不可设置
            _progressView.frame = CGRectMake(10, 100, 300, 40);
        }
        return _slider;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //添加进度条到控制器的View
        [self.view addSubview:self.progressView];
    }
    
    @end
    

    UIProgress进度条常用Api

    • 设置进度条的风格
    //进度条风格枚举
    typedef NS_ENUM(NSInteger, UIProgressViewStyle) {
        UIProgressViewStyleDefault,//normal progress bar 普通进度条
        UIProgressViewStyleBar __TVOS_PROHIBITED,//for use in a toolbar 用于工具栏
    };
    self.progressView.progressViewStyle = UIProgressViewStyleDefault;
    
    • 设置进度条已有进度的颜色,默认为蓝色
    //设置已有进度为红色
    self.progressView.progressTintColor = [UIColor redColor];
    
    • 设置剩余的进度的颜色,默认为灰色
    //设置剩余进度为红色
    self.progressView.trackTintColor = [UIColor blueColor];
    
    • 设置进度条的当前进度,最大值:1,最小值:0
    self.progressView.progress = 0.5;
    

    创建UISlider拖动条

    • UISlider拖动条和UIProgress进度条一样,也是使用alloc和init来创建和初始化。
    • 同样也只能设置位置、宽度,但是高度不可设置。
    @interface ViewController ()
    
    @property(retain, nonatomic) UISlider* slider;
    
    @end
    
    @implementation ViewController
    
    /**
     * 懒加载滑动条
     */
    - (UISlider *)slider {
        if (_slider == nil) {
            //滑动条
            _slider = [[UISlider alloc] init];
            //设置位置,宽度可设置,但高度不可设置
            _slider.frame = CGRectMake(10, 200, 300, 40);
        }
        return _slider;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //添加拖动条到控制器的View
        [self.view addSubview:self.slider];
    }
    
    @end
    

    UISlider拖动条常用Api

    • 设置拖动条的最大值
    self.slider.maximumValue = 1;
    
    • 设置拖动条的最小值,可以设置为负值
    self.slider.minimumValue = 0;
    
    • 设置滑块左侧背景颜色,默认为蓝色
    self.slider.minimumTrackTintColor = [UIColor blueColor];
    
    • 设置滑块右侧背景颜色,默认为灰色
    self.slider.maximumTrackTintColor = [UIColor greenColor];
    
    • 设置滑块颜色,默认为白色
    self.slider.thumbTintColor = [UIColor orangeColor];
    
    • 设置滑动条滑动事件回调
    [self.slider addTarget:self action:@selector(pressSlider:) forControlEvents:UIControlEventValueChanged];
    

    示例

    我们对UISlider拖动条设置拖动监听,同时改变UIProgress进度条的进度。

    @interface ViewController ()
    
    @property(retain, nonatomic) UIProgressView* progressView;
    @property(retain, nonatomic) UISlider* slider;
    
    @end
    
    @implementation ViewController
    
    /**
     * 懒加载进度条
     */
    - (UIProgressView *)progressView {
        if (_progressView == nil) {
            _progressView = [[UIProgressView alloc] init];
            //进度条的高度不可变
            _progressView.frame = CGRectMake(10, 100, 300, 40);
            //设置进度条风格颜色
            _progressView.progressTintColor = [UIColor redColor];
            //设置进度条剩余的进度颜色
            _progressView.trackTintColor = [UIColor blueColor];
            //设置进度条当前进度,最大值:1,最小值:0
            _progressView.progress = 0.5;
            //设置进度条的风格特征
            _progressView.progressViewStyle = UIProgressViewStyleDefault;
        }
        return _progressView;
    }
    
    /**
     * 懒加载拖动条
     */
    - (UISlider *)slider {
        if (_slider == nil) {
            //滑动条
            _slider = [[UISlider alloc] init];
            //高度不可设置
            _slider.frame = CGRectMake(10, 200, 300, 40);
            //设置最大值
            _slider.maximumValue = 1;
            //设置最小值,可以为负值
            _slider.minimumValue = 0;
            //设置滑块左侧背景颜色
            _slider.minimumTrackTintColor = [UIColor blueColor];
            //设置滑块右侧背景颜色
            _slider.maximumTrackTintColor = [UIColor greenColor];
            //设置滑块颜色
            _slider.thumbTintColor = [UIColor orangeColor];
            //设置滑动条滑动事件回调
            [_slider addTarget:self action:@selector(pressSlider:) forControlEvents:UIControlEventValueChanged];
        }
        return _slider;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //添加进度条
        [self.view addSubview:self.progressView];
        //添加拖动条
        [self.view addSubview:self.slider];
    }
    
    - (void) pressSlider:(UISlider*) slider {
        //滑动条和进度条同步进度
        _progressView.progress = slider.value;
        NSLog(@"滑动条滑动,值为: %f", slider.value);
    }
    
    @end
    

    相关文章

      网友评论

        本文标题:2iOS-UIProgress进度条、UISlider拖动条

        本文链接:https://www.haomeiwen.com/subject/lpdfultx.html