web-dev-qa-db-fra.com

Comment s'appelle lorsqu'une valeur UISlider change?

Est-ce qu'une méthode est appelée quand un UISlidervalue change? Je veux pouvoir mettre à jour une valeur basée sur la valeur UISliders, mais uniquement lorsqu'elle change ...

Merci pour toute aide.

66
Michael

Dans IB, vous pouvez connecter un IBAction au Value Changed event ou dans le code, ajoutez cible/action pour UIControlEventValueChanged. Par exemple:

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

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

Notez que si vous voulez que les événements de changement de valeur comme l'utilisateur est sliding, assurez-vous que slider est continuous property est également défini. D'un autre côté, si vous ne voulez pas que l'événement se déclenche car l'utilisateur est sliding et uniquement lorsqu'il a fini de glisser, définissez continu sur NO (ou décochez dans IB).

168
user467105

Pour Swift 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
}
5
Kevin ABRIOUX
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];

}
0
Acharya Ronak