zoukankan      html  css  js  c++  java
  • UISlider 滑块控件

    一、创建

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

    1. UISlider* mySlider = [ [ UISlider alloc ] initWithFrame:CGRectMake(20.0,10.0,200.0,0.0) ];//高度设为0就好    

    二、设定范围与默认值

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

    1. mySlider.mininumValue = 0.0;//下限   
    2. mySlider.maxinumValue = 50.0;//上限  

    同时你也可以为滑块设定一个默认值:

    1. mySlider.value = 22.0;  

    三、两端添加图片

    滑块可以在任何一段显示图像。添加图像后会导致滑动条缩短,所以记得要记得在创建的时候增加滑块的宽度来适应图像。

    1. [ mySlider setMininumTrackImage: [ UIImage applicationImageNamed:@"min.png" ] forState: UIControlStateNormal ];  
    2. [ mySlider setMaxinumTrackImage: [ UIImage applicationImageNamed:@"max.png" ] forState: UIControlStateNormal ];  

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

    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. - (void) sliderValueChanged:(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 事情可以去实现,就看你的手段与想象力了。

    ///////////////////////

    如果您希望在App里引入音量调节功能,生成一个滑动条,用户拖动该控件就能调节iPhone音量--可以用uislider + nstimer。

    代码

    [[NSNotificationCenter defaultCenter] addObserver:self
          selector:@selector(volumeChanged:)
          name:@"AVSystemController_SystemVolumeDidChangeNotification"
          object:nil];

  • 相关阅读:
    python3下import MySQLdb出错问题
    循环单链表
    双端链表
    单链表
    静态链表
    hotspot目录结构
    volatile分析
    centos7 python环境安装
    jconsole连接本地进程报安全连接失败
    redis分布式锁
  • 原文地址:https://www.cnblogs.com/wengzilin/p/2395578.html
Copyright © 2011-2022 走看看