UI: UISlider 实现指定范围值的选择
允许用户用一个简单直观的界面来在一个范围内选择一个值。
现在在 viewDidLoad 方法中创建滑动条。在这段代码中,我们想要滑动条的滑块在 0 到 100 之间滑动,而且默认的位置为 50.
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _mySlider = [[UISlider alloc]initWithFrame:CGRectMake(0, 0, 200, 23)]; _mySlider.center = self.view.center; _mySlider.minimumValue = 0.0f; _mySlider.maximumValue = 100.0f; _mySlider.value = _mySlider.maximumValue/2.0; [self.view addSubview:_mySlider]; }
Value这个属性是可以读写的.如果你想要滑块用动画的方式移动到某个值,可以调用 slider 的 setValue:animated: 方法同时传递参数 YES 。
Slider 上的小滑块叫做 thumb。
如果你想要在 thumb 每次移动时都接收到一个事件的话,就必须用addTarget:action:forControlE vents:方法来将你的对象添加为 slider 的一个 target。
//thumb 每次移动时都接收到一个事件 [_mySlider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];
- (void)sliderValueChange:(id)sender{ NSLog(@"%f",_mySlider.value); }
可能有时候你只想在用户手指放开 thumb 而且新的值以及设置好以后得到通知。这种情况下你必须把 slider 的 continuous 属性设置为 NO。当这个属性被设置为其默认值 YES 时,thumb 滑动时会连续调用 slider 的 target。
_mySlider.continuous = NO;
slider 的 thumb 可以显示不同的图 片。如果你想要修改 thumb 的图片的话,可以调用 setThumbImage:forState:方法。
该方法的第一个参数是图片,第二个参数有一下几种情况:
UIControlStateNormal
正常状态的 thumb,即用户没有点击 thumb
UIControlStateHighlighted
选中状态的 thumb,即用户点击 thumb 时显示的图片
正常状态的 thumb,即用户没有点击 thumb
UIControlStateHighlighted
选中状态的 thumb,即用户点击 thumb 时显示的图片
[_mySlider setThumbImage:[UIImage imageNamed:@"ThumbNormal.png"] forState:UIControlStateNormal]; [_mySlider setThumbImage:[UIImage imageNamed:@"ThumbHighlighted.png"] forState:UIControlStateHighlighted];