Bekommt ein Verfahren , wenn ein namens UISlider
‚s value
ändert? Ich möchte einen Wert basierend auf dem UISliders
Wert aktualisieren können, aber nur, wenn er sich ändert ...
Vielen Dank für jede Hilfe.
Antworten:
In IB, können Sie einen Haken IBAction
an dem Value Changed event
oder in Code Add Ziel / Aktion für UIControlEventValueChanged
. Zum Beispiel:
[mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
- (IBAction)sliderValueChanged:(UISlider *)sender {
NSLog(@"slider value = %f", sender.value);
}
Beachten Sie, dass , wenn Sie die Wertänderungsereignisse wollen , wenn der Benutzer ist sliding
, dann sicher sein , dass die slider
‚s continuous property
auch gesetzt ist. Wenn Sie jedoch nicht möchten, dass das Ereignis so sliding
ausgelöst wird, wie es der Benutzer ist, und erst dann, wenn das Gleiten beendet ist, setzen Sie fortlaufend auf NEIN (oder deaktivieren Sie in IB).
Für 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];
}