实现当滑块滑动时,左侧label标签的数字跟随改变。
如图设置界面显示,调整slider的value属性,更改为最小值为0,最大值为100,current值为50,创建label的outlet并关连,对slider创建action方法如sliderChanged并关联,在action方法中实现如下代码:
- (IBAction)sliderChanged:(UISlider *)sender {
int progress=lroundf(sender.value);
self.sliderLabel.text=[NSString stringWithFormat:@"%d",progress];
}
值得注意的是:为了在用户触碰滑块之前,标签也能正确显示滑块的值,再viewDidLoad方法中添加如下代码:
self.sliderLabel.text=@"50";
段控制视图设置界面如下图,
创建两个switch的outlet,和switch和segment的action方法,此处注意是将两个开关关联到一个action方法上,不是分别创建两个action方法,action方法具体实现如下,
开关的action方法:
- (IBAction)switchChanged:(UISwitch *)sender {
BOOL setting=sender.isOn;
[self.leftSwitch setOn:setting animated:YES];
[self.rightSwitch setOn:setting animated:YES];
}
再拖动一个按钮放置在两个开关之上,调整大小完全覆盖两个switch开关,设置这个button的属性,view->hidden选中,此时,button按钮会变的透明了如下图:
- (IBAction)toggleControls:(UISegmentedControl *)sender {
//0=switch index
if (sender.selectedSegmentIndex==0) {
self.leftSwitch.hidden=NO;
self.rightSwitch.hidden=NO;
self.doSomethingButton.hidden=YES;
}else{
self.leftSwitch.hidden=YES;
self.rightSwitch.hidden=YES;
self.doSomethingButton.hidden=NO;
}
}
此时,当运行应用程序时,初始显示没有button按钮,两个开关是关联的,即转换一个开关,另一个开关也会跟着改变。当按下segment的button时,按钮就会出现在下方。