Ich verwende ein UISlider in meiner App, wo ich Max und Min Bild für Slider hinzufügen. Alles funktioniert gut, aber schauen Sie sich das Bild unten an. Wenn ich auf die Schaltfläche klicke, wird die Animation gestartet und die Werte auf dem Etikett ändern sich, aber die Animation auf dem Slider springt direkt auf 6, was Sie sehen können und das gleiche passiert, wenn der Slider den maximalen Wert (100) erreicht Farbe) verschwindet und das Label zeigt weiterhin Werte von 97..98..99..100. UISlider unerwünschtes Verhalten beim Animieren
Hier ist der Code-Schnipsel als Referenz:
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *sliderMinimum = [[UIImage imageNamed:@"slider_max"] stretchableImageWithLeftCapWidth:14 topCapHeight:0];
[self.slider setMinimumTrackImage:sliderMinimum forState:UIControlStateNormal];
UIImage *sliderMaximum = [[UIImage imageNamed:@"slider_min"] stretchableImageWithLeftCapWidth:14 topCapHeight:0];
[self.slider setMaximumTrackImage:sliderMaximum forState:UIControlStateNormal];
}
- (IBAction)btnClicked:(id)sender
{
[self.slider setValue:0 animated:true];
[self setSliderValue:2];
}
- (void)setSliderValue:(float)value
{
[UIView animateWithDuration:0.2 animations:^{
[self.slider setValue:value animated:true];
} completion:^(BOOL finished) {
self.lblSliderValue.text = [NSString stringWithFormat:@"%0.0f", self.slider.value];
if (self.slider.value != self.slider.maximumValue) {
[self setSliderValue:value+1];
}
}];
}
Sie müssen erzwingen:
Und in der Wertrunden Funktion den Wert eingestellt Aktualisieren der UI-Komponente ... setNeedsDisplay – Dominic
@Dominic Wie stelle ich es und wo! Können Sie Ihre Lösung ausarbeiten plz – iDeveloper
setzen Sie dies, nachdem Sie den Text ... [self.lblSliderValue setNeedsDisplay] – Dominic