免费开源的iOS开发学习平台

UISlider详解:2-UISlider实例

本节我们使用UISlider控件来控制一个图片的透明度。

  • 在控制器类中,添加一个UISlider类的属性以及一个UIImageView类的属性
@interface ViewController ()
@property (nonatomic,strong) UISlider *slider;
@property (nonatomic,strong) UIImageView *imageView;
@end
  • 初始化所需控件并添加到控制器view。对于UISlider对象,我们可以监听UIControlEventValueChanged事件,当UISlider的值发生改变时,可以调用changeAlpha方法。
- (UISlider *)slider {
    if (_slider == nil) {
        _slider = [[UISlider alloc]initWithFrame:CGRectMake(20, 400, [UIScreen mainScreen].bounds.size.width - 40, 20)];
        _slider.value = self.imageView.alpha;
        _slider.minimumTrackTintColor = [UIColor redColor];
        _slider.maximumTrackTintColor = [UIColor whiteColor];
        _slider.thumbTintColor = [UIColor grayColor];
        [_slider addTarget:self action:@selector(changeAlpha) forControlEvents:UIControlEventValueChanged];
    }
    return _slider;
}
  • 初始化UIImageView并设置相关属性
- (UIImageView *)imageView {
    if (_imageView == nil) {
        _imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];
        _imageView.image = [UIImage imageNamed:@"99logo"];
    }
    return _imageView;
}
  • 把两个子控件添加到控制器视图上
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.slider];
    [self.view addSubview:self.imageView];
}
  • 实现改变图片透明度的方法。我们可以调用imageView对象的setAlpha:方法来修改图片的透明度,而图片透明度的取值来自于UISlider对象当前的value值。
- (void)changeAlpha {
    [self.imageView setAlpha:self.slider.value];
}

运行效果:

示例代码

https://github.com/99ios/10.5.2