今天项目中要用到音量的控制,忽然想起来用UIslider做起来应该会更好点,于是就复习了一下:
CGRect frame = CGRectMake(10, 50, 200, 0);
//slider高度被忽略,所以设置为0
slider=[[UISlider alloc] initWithFrame:frame];
//slider系统默认取值范围是0.0--1.0之间,可以通过mininumValue和maxinumValue两个属性设置
slider.minimumValue=0.0;
slider.maximumValue = 100.0;
//设置滑块左边值颜色为绿色。系统默认为蓝色
slider.minimumTrackTintColor = [UIColorgreenColor];
//设置滑块右边值为红色,系统默认为白色
slider.maximumTrackTintColor = [UIColorredColor];
//给slider是指默认值30
slider.value = 30;
//continuous属性,是指滑块值在拖地触发滑块值变动
slider.continuous = YES;
//添加一个UISlider的滑动时间。在这个事件中读取UISLider的Value值即可知UIslider的变化。
[slideraddTarget:selfaction:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];
设置UISlider左右两端的图片:
self.volumeSlider.minimumValueImage = [UIImage imageNamed:@"volume-mute.png"];
self.volumeSlider.maximumValueImage = [UIImage imageNamed:@"volume-up.png"];
设置跟踪Uislider变化的图片:
[self.volumeSlider setMinimumTrackImage:[UIImage imageNamed:@"volume-mute.png"] forState:UIControlStateNormal];
[self.volumeSlider setMaximumTrackImage:[UIImage imageNamed:@"volume-up.png"] forState:UIControlStateNormal];
补充
这是拖拽空间实现的
这是输出口和事件
@property (weak, nonatomic) IBOutletUILabel *sliderLabel;
- (IBAction)sliderChanged:(id)sender;
这是事件实现
- (IBAction)sliderChanged:(id)sender {
//首先将sender装换承UISlider,作用是让代码可读性变强,
//并避免每次使用sender都对他进行其它类型转换。
UISlider *slider = (UISlider *)sender;
//接收滑块的值,将其加0.5,以便四舍五入为整型值。
int progresAsInt = (int)(slider.value +0.5f);
//必须转换为string 时间上一个项目里面有
self.sliderLabel.text =[[NSString alloc] initWithFormat:@"%d",progresAsInt];
}
然后就ok
补充另外一点
// 两端添加图片
// 滑块可以在任何一段显示图像。添加图像后会导致滑动条缩短,所以记得要记得在创建的时候增加滑块的宽度来适应图像。
// [ mySlider setMininumTrackImage: [ UIImage applicationImageNamed:@"min.png" ] forState: UIControlStateNormal ];
// [ mySlider setMaxinumTrackImage: [ UIImage applicationImageNamed:@"max.png" ] forState: UIControlStateNormal ];
// 你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:
// UIControlStateNormal
// UIControlStateHighlighted
// UIControlStateDisabled
// UIControlStateDisabled
// UIControlStateSelected
//continuous属性,是指滑块值在拖地触发滑块值变动
mySlider.continuous = YES;
//滑块值改变时收到通知
[mySlider addTarget:selfaction:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:mySlider];
//[self.navigationItem.titleView addSubview:myslider ];//添加到导航栏
}
CGRect switchFrame = CGRectMake(100, 200, 0, 0);
//初始化
switchTest = [[UISwitch alloc] initWithFrame:switchFrame];
//设置switch初始状态为ON
switchTest.on = YES;
//添加一个触发事件,当点击时候,触发这个事件
[switchTestaddTarget:selfaction:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];witch控件,
CGRect switchFrame = CGRectMake(100, 200, 0, 0);
//初始化
switchTest = [[UISwitch alloc] initWithFrame:switchFrame];
//设置switch初始状态为ON
switchTest.on = YES;
//添加一个触发事件,当点击时候,触发这个事件
[switchTestaddTarget:selfaction:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];