74

UISlider当 a的value变化时会调用方法吗?我希望能够根据值更新UISliders值,但仅在它发生变化时。

4

3 回答 3

175

在 IB 中,您可以连接IBActionValue Changed event或在代码中添加目标/操作UIControlEventValueChanged。例如:

[mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

- (IBAction)sliderValueChanged:(UISlider *)sender {
    NSLog(@"slider value = %f", sender.value);
}

请注意,如果您希望 user is 的值更改事件sliding,那么请确保slider'scontinuous property也已设置。另一方面,如果您不希望事件像用户一样触发sliding并且仅在他们完成滑动时触发,请将 Continuous 设置为 NO(或在 IB 中取消选中)。

于 2010-11-04T01:43:58.567 回答
7

对于斯威夫特 3

//There is your slider
@IBOutlet weak var mSlider: UISlider!

//add a target on your slider on your viewDidLoad for example
self.mSlider.addTarget(self, action: #selector(MyClass.onLuminosityChange), for: UIControlEvents.valueChanged)

//callback called when value change
func onLuminosityChange(){
    let value = self.mSlider.value
}
于 2016-12-13T09:43:23.627 回答
0
ViewController.h

@property (strong, nonatomic) IBOutlet UIProgressView *prgs;

- (IBAction)slider:(id)sender;

@property (strong, nonatomic) IBOutlet UISlider *slider1;

@property (strong, nonatomic) IBOutlet UILabel *lbl;


ViewController.m

- (IBAction)slider:(id)sender 
{

    self.prgs.progress=self.slider1.value;

    self.lbl.text = [NSString stringWithFormat:@"%f", 
self.slider1.value];

}
于 2016-06-20T04:37:46.257 回答