滑块是一个标准的UIControl,我们可以通过代码创建,如同开关(UISwitch)的宽与高都会被忽略,滑块的宽高也会被忽略
//初始化一个UISlider
UISlider *slider = [[UISlideralloc] initWithFrame:CGRectMake(10, 20, 100, 30)];
// 设置滑块的范围,提供了两个属性来设置范围
slider.minimumValue = 10;
slider.maximumValue = 100;
slider.Value = 20;slider.minimumValueImage = [UIImageimageNamed:@"设置slider左边的图片"];
slider.maximumValueImage = [UIImageimageNamed:@"设置slider右边的图片"];
//设置了会减小滚动区域的宽度,但整个slider的宽度不变
[slider setMinimumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"] forState:UIControlStateNormal];
[slider currentMinimumTrackImage];//得到当前滑轮左边的图片如果有的话
[slider setMaximumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"] forState:UIControlStateNormal];
[slider currentMaximumTrackImage];//得到当前滑轮右边的图片如果有的话
slider.minimumTrackTintColor = [UIColorredColor]; //滑轮左边颜色如果设置了左边的图片就不会显示
slider.maximumTrackTintColor = [UIColorredColor]; //滑轮右边颜色如果设置了右边的图片就不会显示
[slider thumbImageForState:UIControlStateNormal];
[slider setThumbImage:[UIImageimageNamed:@"设置滑轮样子的图片"] forState:UIControlStateHighlighted];//设置了普通状态和高亮状态的滑轮样式
slider.thumbTintColor = [UIColorredColor];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示
读取控件值 :float value = slider.value;
要想在滑块值改变时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作,只要滑块停放,方法会调用
[_rootView.sliderA addTarget:selfaction:@selector(sliderValueChanged:)forControlEvents:UIControlEventValueChanged];
- (void)sliderValueChanged:(UISlider *)sender
{
// 滑动滑竿,数字跟着改变
int p = (int)roundf(sender.value);
_rootView.label.text = [NSStringstringWithFormat:@"%d",p];
}
在拖动时也触发,需要设置滑块的continuous属性:slider.continuous= YES;
实时显示滑块的值