iOS开发UISlider滑动条的属性介绍以及于标签联合使用实时显示变动值

来源:互联网 发布:白鹤翔java架构师视频 编辑:程序博客网 时间:2024/05/01 22:59

转载自:http://blog.csdn.net/weisubao/article/details/39559001

(1)滑动条的左右端背景可以设置上一页下一页的图片;


(2)滑动条的轨道图片可以设置为渐变等等图片。


(3)滑动条因为值可以互动,所以addTarget:方法很重要,其中事件值变动UIControlEventValueChanged比较特殊,其实和按钮的按下事件是一个性质,都是一个事件而已。


[objc] view plaincopy
  1. #import "ViewController.h"  
  2.   
  3. @interface ViewController ()  
  4.   
  5. @end  
  6.   
  7. @implementation ViewController  
  8. {  
  9.     //应为后面getValue:方法要调用这个对象,所以得弄成全局变量  
  10.     UILabel *label1;  
  11. }  
  12.   
  13. - (void)viewDidLoad {  
  14.     //实例化一个滑动条  
  15.     UISlider *sli1=[[UISlider alloc]init];  
  16.     //设置控件位置和大小,大小不影响控件本身大小,但当高度设置为0,滑块不可拖动  
  17.     sli1.frame=CGRectMake(303030060);  
  18.     //设置值  
  19.     sli1.value=0.8;  
  20.     //设置最小值  
  21.     sli1.minimumValue=1;  
  22.     //设置最大值  
  23.     sli1.maximumValue=10;  
  24.     //设置已经滑过一端滑动条颜色  
  25.     sli1.minimumTrackTintColor=[UIColor redColor];  
  26.     //设置未滑过一端滑动条颜色  
  27.     sli1.maximumTrackTintColor=[UIColor blackColor];  
  28.     //设置最小值一端图片,会挤压滑动条宽度  
  29.     sli1.minimumValueImage=[UIImage imageNamed:@"1.png"];  
  30.     //设置最大值一端图片,会挤压滑动条宽度  
  31.     sli1.maximumValueImage=[UIImage imageNamed:@"2.png"];  
  32.     //设置滑块颜色,貌似无效,可能是默认的时图片,已经覆盖了颜色  
  33.     sli1.thumbTintColor=[UIColor yellowColor];  
  34.       
  35.     //设置已经滑过一端滑动条背景图片,会覆盖之前之前的颜色,以下相同  
  36.     [sli1 setMinimumTrackImage:[UIImage imageNamed:@"3.png"] forState:UIControlStateNormal];  
  37.     //设置未滑过一端滑动条背景图片  
  38.     [sli1 setMaximumTrackImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];  
  39.     //设置滑块图片背景  
  40.     [sli1 setThumbImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];  
  41.       
  42.     //最重要的就是根据滑动事件来进行相应操作  
  43.     //此处和按钮的类似,但是按钮的事件是按下,而这里的事件是UIControlEventValueChanged值变化就是事件  
  44.     [sli1 addTarget:self action:@selector(getValue1:) forControlEvents:UIControlEventValueChanged];  
  45.       
  46.     //设置一个标签,把变动的值实时显示出来  
  47.     //得在上面弄成全局变量,所以这里就不是UILabel *label1了,而直接初始化即可  
  48.     label1=[[UILabel alloc]initWithFrame:CGRectMake(3010030050)];  
  49.     label1.text=@"值";  
  50.       
  51.     [self.view addSubview:sli1];  
  52.     [self.view addSubview:label1];  
  53.     [super viewDidLoad];  
  54.     // Do any additional setup after loading the view, typically from a nib.  
  55. }  
  56.   
  57. -(void)getValue1:(id)sender{  
  58.     UISlider *sli2=(UISlider *)sender;  
  59.     label1.text=[NSString stringWithFormat:@"%f",sli2.value];  
  60. }  
  61.   
  62. @end  

我的代码

-(void) viewDidLoad{    UISlider* sli1 = [[UISlider alloc] init];    sli1.frame = CGRectMake(30, 30, 300, 60);    sli1.value = 0.8;    sli1.minimumValue = 1;    sli1.maximumValue = 10;    sli1.minimumTrackTintColor = [UIColor redColor];    sli1.maximumTrackTintColor = [UIColor blackColor];    sli1.minimumValueImage = [UIImage imageNamed:@"propIcon_50000001.png"];    sli1.maximumValueImage = [UIImage imageNamed:@"propIcon_50000002.png"];    sli1.thumbTintColor = [UIColor yellowColor];        [sli1 setMinimumTrackImage:[UIImage imageNamed:@"loadingbar.png"] forState:UIControlStateNormal];    [sli1 setMaximumTrackImage:[UIImage imageNamed:@"sliderProgress.png"] forState:UIControlStateNormal];    [sli1 setThumbImage:[UIImage imageNamed:@"propIcon_50000008.png"] forState:UIControlStateNormal];    [sli1 addTarget:self action:@selector(getValue1:) forControlEvents:UIControlEventValueChanged];        label1 = [[UILabel alloc]initWithFrame:CGRectMake(30, 100, 300, 50)];    label1.text = @"值";        [self.view addSubview:sli1];    [self.view addSubview:label1];        [super viewDidLoad];}-(void) getValue1:(id)sender{    UISlider* sli2 = (UISlider*) sender;    label1.text = [NSString stringWithFormat:@"%f",sli2.value];}


0 0