IOS:UI设计之UISlider相关基础

UISlider能让用户简单直观的在一定范围内取一个值,一般常见在音量控制,播放进度,读取进度,完成进度等等上。

IOS系统给定了UISlider特定的显示样式,当然,程序员也可以自定义UISlider样式。

左图为IOS6系统环境下的显示样式;左图为IOS7系统环境下给定的显示样式。

下面,开始由代码出发,介绍UISlider的属性和方法:

  UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(x,y,w,h)];     //初始化方法,其中高度设置对于系统样式且无背景颜色时作用不明显,有背景颜色时,显示该控件实际大小,在自定义时,影响图片的高度。

  slider.maximumValue = 10;    //设置滑块能够滑到的最大

  slider.minmumValue = 0;      //设置滑块能够滑到的最小值

  slider.value = 5;         //设置滑块的初始值(注意应该先设置slider的最大值和最小值,再设置初始值;因为UISlider默认情况下,其范围为:0-1);

  slider.backgroundColor = [UIColor clearColor];     //设置背景颜色,此时无颜色

    //设置滑块左边和右边的颜色

  [slider setMaximumTrackTintColor:[UIColor redColor]];

  [slider setMinimumTrackTintColor:[UIColor greenColor]];

  [slider setThumbTintColor:[UIColor clearColor]];    //滑块透明

  [self.view addSubview:slider];    //添加到视图

下面是自定义UISlider的方法:

  UIImage *stetchLeftTrack= [UIImage imageNamed:@"name1.png"];    //设置左轨道图片

  UIImage *stetchRightTrack = [UIImage imageNamed:@"name2.png"];    //设置右轨道图片

  UIImage *thumbImage = [UIImage imageNamed:@"name3.png"];      //设置滑块图片

  UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(x,y,w,h)];

  slider.maximumValue = 10;

  slider.minmumValue = 0;

  slider.value = 5;

  slider.backgroundColor = [UIColor clearColor];

  [slider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];  //常态下左边轨道的图片

    [slider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];  //常态下右边轨道的图片

    //注意这里要加UIControlStateHightlighted的状态,否则当拖动滑块时滑块将变成原生的控件

   [slider setThumbImage:thumbImage forState:UIControlStateHighlighted];

   [slider setThumbImage:thumbImage forState:UIControlStateNormal];

      //添加滑块滑动时的事件:

  [slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

      //滑动拖动后的事件

      [slider addTarget:self action:@selector(sliderDragUp:) forControlEvents:UIControlEventTouchUpInside];

  [self.view addSubview:slider];

  //事件:

-(void)sliderValueChanged:(UISlider *)slider

{

   NSLog(@"sliderValue:%.1f",slider.value);  //这是滑块滑动到不同位置时,获取相对应的值的方法

}

-(void)sliderDrageUp:(UISlider *)slider

{

  //输入想要发生的事件

}

(可能学得比较浅,大家要是有补充可以留言,有问题的大家一起探讨下,可以私下联系:QQ790444804    微信:hgwchihuo

                                                -------我是快乐的小尾巴`(*∩_∩*)′)

原文地址:https://www.cnblogs.com/welcometheday/p/4481025.html