iOS 控件之 UISlider

来源:互联网 发布:牛顿迭代法算法 编辑:程序博客网 时间:2024/06/07 16:00

UISlider继承UIControl,是一个可以在最小值和最大值之间任意滑动的进度条,和UIProgressView的区别在于:前前者无法响应用户的触摸事件,而后者可以。

我下了一个demo,相信的总结了一下UISlider 的使用方法

////  ViewController.m//  UIProgressViewDemo////  Created by 冷凝 on 14-2-19.//  Copyright (c) 2014年 **. All rights reserved.//#import "ViewController.h"@interface ViewController (){   // UIProgressView * _progressView;    UISlider * _slider;}@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    [self addSlider];    //[self addProgressView];}-(void)addSlider{    _slider = [[UISlider alloc]initWithFrame:CGRectMake(10, 10, 300, 50)];    _slider.minimumValue = 0;    _slider.maximumValue = 100;    _slider.value = 50;    _slider.minimumValueImage = [UIImage imageNamed:@"meigui.png"];    _slider.maximumValueImage = [UIImage imageNamed:@"yongbao.png"];    _slider.minimumTrackTintColor = [UIColor blackColor];    //_slider.maximumTrackTintColor = [UIColor greenColor];    _slider.thumbTintColor = [UIColor orangeColor];    [_slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];    [_slider setThumbImage:[UIImage imageNamed:@"daku.png"] forState:UIControlStateNormal];//设置默认图片    [_slider setThumbImage:[UIImage imageNamed:@"chouyan.png"] forState:UIControlStateHighlighted];//设置移动时显示进度的图片    [self.view addSubview:_slider];}//根据值的变化来做判断-(void)sliderValueChanged:(UISlider*)slider{    if (slider.value <= slider.maximumValue/2.0) {        slider.minimumTrackTintColor = [UIColor blackColor];            }else{        [slider setValue:90 animated:YES];        slider.minimumTrackTintColor = [UIColor redColor];        slider.maximumTrackTintColor = [UIColor blackColor];    }}


为了供子类定制还提供了四个方法:看到函数名就知道函数的功能

// lets a subclass lay out the track and thumb as needed- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds;- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds;- (CGRect)trackRectForBounds:(CGRect)bounds;- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value;


0 0