1、UISlider控件就像其名字一样,是一个像滑动变阻器的控件:
上图中的圆圈可以移动,它处在不同的位置,这个UISlider会有不同的值。接下来的例子是关于UISlider的简单使用。
(1)假设我们已经建立了一个Single View Application,打开ViewController.xib,在IB中添加一个UISlider控件和一个Label,这个Label用来显示Slider的值。
(2)选中新加的Slider控件,打开Attribute Inspector,修改属性值,设置最小值为0,最大值为100,当前值为50,并确保勾选上Continuous,如下图:
(3)修改Label的文本为50。
(4)接下来还是建立映射,将Label和Slider都映射到ViewController.h中,其中Label映射为Outlet,名称为sliderLabel,Switch映射为Action,事件类型为默认的Value Changed,方法名称为sliderChanged:
(5)打开ViewController.m,找到sliderChanged方法,在其中添加以下代码:
1 | - (IBAction)sliderChanged:(id)sender { |
2 | UISlider *slider = (UISlider *)sender; |
3 | int progressAsInt = ( int )roundf(slider.value); |
4 | sliderLabel.text = [NSString stringWithFormat:@ "%i" , progressAsInt]; |
5 | } |
代码很简单,就不解释了。
(6)运行一下,看看效果:
2、UISwitch控件,就是很像开关的那种控件,它只有两个状态:on和off:
接下来的小例子,我们将会实现:改变任一Switch的状态,另一个Switch也发生同样的变化。
(1)在上面的例子中,打开ViewController.xib,在IB中添加两个UISwitch控件。
(2)将这两个Switch控件都映射到ViewController.h中,都映射成Outlet,名称分别是leftSwitch和rightSwitch。
(3)选中左边的Switch,按住Control键,在ViewController.h中映射成一个Action,事件类型默认为Value Changed,名称为switchChanged:
(4)然后,我们让右边的Switch也映射到这个方法:
(5)打开ViewController.m,找到switchChanged方法,添加代码:
1 | - (IBAction)switchChanged:(id)sender { |
2 | UISwitch *mySwitch = (UISwitch *)sender; |
3 | BOOL setting = mySwitch.isOn; //获得开关状态 |
4 | [leftSwitch setOn:setting animated:YES]; //设置开关状态 |
5 | [rightSwitch setOn:setting animated:YES]; |
6 | } |
(6)运行一下,看看效果: