IOS的UISlide

初始化一个Slider


UISlider *slider = [[UISlideralloc]initWithFrame:CGRectMake(0, 400,320 , 20)];

滑块是一个标准的UIControl。我们可以通过代码创建,如同开关(UISwitch)的宽与高都会被忽略一样滑块的高也会被忽略(但是宽度不会):

二、设定范围与默认值

 

创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的 0.0 到 1.0之间的值。UISlider提供了两个属性来设置范围:mininumValue 和 maxinumValue:

 

  1. mySlider.mininumValue 0.0;//下限  
  2. mySlider.maxinumValue 50.0;//上限  
同时你也可以为滑块设定一个默认值:

 

 

 

  1. mySlider.value 22.0 

 

 

改变UISlider的外观

   

   

slider.minimumValueImage = [UIImageimageNamed:@"设置slider左边的图片"];

slider.maximumValueImage = [UIImageimageNamed:@"设置slider右边的图片"];

//设置了会减小滚动区域的宽度,但整个slider的宽度不变


[slider setMinimumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"]forState:UIControlStateNormal];

[slidercurrentMinimumTrackImage]; //得到当前滑轮左边的图片如果有的话

   

[slider setMaximumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"]forState:UIControlStateNormal];

[slidercurrentMaximumTrackImage]; //得到当前滑轮右边的图片如果有的话



把蓝色的设置为MinimumTrackImage

把灰色的设置为MaximumTrackImage

可以加一个label用于显示value,在UISlider的行为的change方法里改变label.text属性

   

slider.minimumTrackTintColor = [UIColorredColor]; //滑轮左边颜色如果设置了左边的图片就不会显示

slider.maximumTrackTintColor = [UIColorredColor]; //滑轮右边颜色如果设置了右边的图片就不会显示

   

[slider thumbImageForState:UIControlStateNormal]; 

[slider setThumbImage:[UIImageimageNamed:@"设置滑轮样子的图片"]forState:UIControlStateHighlighted];//设置了普通状态和高亮状态的滑轮样式

slider.thumbTintColor = [UIColorredColor];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示


你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:

 

UIControlStateNormal

UIControlStateHighlighted

UIControlStateDisabled

UIControlStateDisabled

UIControlStateSelected

 

四、显示控件

 

  1. parentView addSubview:myslider ];//添加到父视图  
  2. 或  
  3. self.navigationItem.titleView addSubview:myslider ];//添加到导航栏  

五、读取控件值

 

  1. float value mySlider.value;  

六、通知

 

要想在滑块值改变时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。

 

  1. mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEventValueChanged ];  
只要滑块停放(注意是停放,如果要在拖动中也触发,请看后文)到新的位置,你的动作方法就会被调用:

 

 

  1. (voidsliderValueChanged:(id)sender{  
  2.         UISlider* control (UISlider*)sender;  
  3.         if(control == mySlider){  
  4.                   float value control.value;  
  5.                      
  6.           
  7.  
如果要在拖动中也触发,需要设置滑块的continuos 属性:

 

 

  1. mySlider.continuous YES  

这个通知最简单的一个实例就是实时显示滑块的值,很奇怪的苹果显示滑块的值是一个私有的API(setShowValue),私有就私有,大不了我不用就是。我们可以用一个UILabel来显示值,在每次触发上面的方法时改变label的值,不就可以实时显示了吗?当然我们可以做的不仅仅是这个,还有更多的cool 事情可以去实现,就看你的手段与想象力了。 



主要是UISlider跟换thumb 与 状态条 bar 的替换


      //让Slider控件旋转90度 垂直

        CGAffineTransform  rotation=  CGAffineTransformMakeRotation (- 1.57079633 );

    self.volumeSlider.transform =rotation;



 //跟换Thumb

 


 [self.volumeSlider setThumbImage:image1 forState:UIControlStateNormal];



// 跟换bar  并且实现拖动效果


  //覆盖的图片

 

[self.volumeSlider setMinimumTrackImage:image2 forState:UIControlStateNormal];


  //底片 

 [self.volumeSlider setMaximumTrackImage:image forState:UIControlStateNormal];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值