iOS开发笔记--UISlider的相关属性设置

来源:互联网 发布:炒贵金属软件 编辑:程序博客网 时间:2024/05/16 05:49
UISlider的使用


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


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


二、设定范围与默认值
创建完毕的同时我们要设置好滑块的范围,如果没有设置,默认为 0.0 到 1.0 之间的值。UISlider提供了两个属性来设置范围:mininumValue(最小值) 和 maxinumValue(最大值)


mySlider.mininumValue = 0.0;//最小值  
mySlider.maxinumValue = 100.0;//最大值  
 同时也可以为滑块设定一个默认值:


mySlider.value = 50.0;  


三、添加图片
滑块可以两端显示图像。添加图像后UISlider会缩短,所以要记得在创建的时候增加滑块的宽度来适应图像。


[ mySlider setMininumTrackImage: [ UIImage applicationImageNamed:@"min.png" ] forState: UIControlStateNormal ];  
[ mySlider setMaxinumTrackImage: [ UIImage applicationImageNamed:@"max.png" ] forState: UIControlStateNormal ];  
 可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:
UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateDisabled
UIControlStateSelected


四、显示控件


[ self.view addSubview:myslider ];//添加到视图  
或  
[ self.navigationItem.titleView addSubview:myslider ];//添加到导航栏  


五、读取控件值


float value = mySlider.value;  


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


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


- (void) sliderValueChanged:(id)sender{  
        UISlider* control = (UISlider*)sender;  
        if(control == mySlider){  
                  float value = control.value;  
                   /* 添加代码 */  
         }  
}  
 如果要在拖动中也触发,需要设置滑块的 continuos 属性:
[java] view plaincopyprint?
mySlider.continuous = YES ;  


这个通知最简单的一个实例就是实时显示滑块的值,我们可以用一个UILabel来显示值,在每次触发上面的方法时改变label的值
- (void) sliderChanged:(UISlider *)sender
{
self.sliderLabel.text = [NSString stringwithFormat :@"%.1f",self.mySlider.value];
}
0 0
原创粉丝点击