Я создаю сегодняшнее расширение в iOS. То, что я пытаюсь сделать, - это изменить значение изменения в UISlider, добавленное в сегодняшнее расширение. Анимация должна начинаться с начального значения до конечного значения.iOS Сегодняшнее расширение виджета - анимация UISlider
Я пытался сделать это двумя способами: Первый UIView анимации
func updateSliderView(beginState:Float, duration: NSTimeInterval) {
sliderView.hidden = false
sliderView.setValue(beginState, animated: false)
UIView.animateWithDuration(duration) {() -> Void in
self.sliderView.setValue(1, animated: true)
}
}
Второй с базовой анимации.
func updateSliderView(beginState:Float, duration: NSTimeInterval) {
sliderView.hidden = false
guard let _ = sliderView.layer.animationForKey("slider.animation.value") else {
let animation = CABasicAnimation(keyPath: "value")
animation.fromValue = beginState
animation.toValue = 1
animation.removedOnCompletion = true
sliderView.layer.addAnimation(animation, forKey: "slider.animation.value")
return
}
}
Я делаю это с новым XCode 7.0.1 с целью IOS 8,1 В обоих результате заканчивается без анимации. У UISlider отключено взаимодействие с пользователем. Я использую UISluder, потому что у меня есть пользовательская графика для ползунка min & max track и для большого слайдера.
я сделал третье испытание
sliderView.setValue(beginState, animated: false)
CATransaction.begin()
CATransaction.setAnimationDuration(duration)
sliderView.setValue(1, animated: true)
CATransaction.commit()
это не будет работать:/
Резюме: Только UIView.animation работает. Это анимация, но она нарушает мою таможенную графику для UISlider, и она не устанавливает начальное значение для слайдера.
Как я могу изменить изменение значения UISlider в текущем расширении?
Не слайдер имеет анимированный метод с установленным значением? Вы попробовали это? –
Я использовал метод corect с анимацией Как вы можете видеть в примере 1-го кода, анимированный: true, он не будет анимировать его :(Вот почему я здесь – Shial