Est-ce qu'une méthode est appelée quand un UISlider
value
change? Je veux pouvoir mettre à jour une valeur basée sur la valeur UISliders
, mais uniquement lorsqu'elle change ...
Merci pour toute aide.
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).
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
}
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];
}