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, потому что у меня есть пользовательская графика для дорожки минимального и максимального дорожек ползунка и для большого слайдера.

Я сделал третий тест

 sliderView.setValue(beginState, animated: false) CATransaction.begin() CATransaction.setAnimationDuration(duration) sliderView.setValue(1, animated: true) CATransaction.commit() 

он не будет работать: /

Реферат: Работает только UIView.animation. Это анимация, но она нарушает мою таможенную графику для UISlider, и она не устанавливает начальное значение для слайдера.

Как я могу оживить изменение значения UISlider в расширении Today?

One Solution collect form web for “iOS Сегодняшнее расширение виджета – анимация UISlider”

Хорошо, я решил это. Я отвечаю на собственный вопрос, потому что, возможно, это поможет кому-то, и это решение, о котором я просил.

Только UIView.animation оживляют UISlider внутри Todays Extension . Но установка начального значения не работала до анимации, и анимация нарушала пользовательскую графику на слайдере. Я понял это, когда вы установили начальную ценность в блоке UIView.animation, когда-либо будет работать так, как я хотел.

 UIView.animateWithDuration(0.2, delay: 0, options: .CurveLinear, animations: { () -> Void in self.sliderView.setValue(beginState, animated: true) }) { (completed) -> Void in UIView.animateWithDuration(duration, delay: 0.1, options: .CurveLinear, animations: { () -> Void in self.sliderView.setValue(1, animated: true) }, completion: nil) } 

Я объединил два блока анимации UIView. Результат был таким, каким я ожидал раньше. начальное значение было установлено. Значение UISlider было анимировано от начального значения до конца. Все пользовательские графики, такие как мин, макс и большой палец, отображались правильно.

  • iOS: Swift: редактирование UISliderDidEnd не называется
  • Синхронизация UISlider и UIScrollView
  • Устанавливает ли минимальная / максимальная точность UISlider точность округления
  • Пользовательский UiSlider IOS 6
  • Круглый пользовательский интерфейс с изображением и цветом
  • Как программно установить начальное значение UISlider или как запускается программа iOS?
  • Кнопка маршрута ios mpvolumeview, не вертикально центрированная по обновлению ios 7.1
  • UISlider не обновляет текущее значение в Swift
  • Изменение диапазона UISlider программно
  • Как включить «коснуться и сдвинуть» в UISlider?
  • Пользовательское изображение MPVolumeView Thumb не вертикально центрировано с iOS 5.1
  • Как читать размер изображения большого пальца UISlider
  • Interesting Posts

    dispatch_group_notify не ждет одного dispatch_group_async

    Как создать круговые изображения?

    загружать изображения с помощью SDWebImage в порядке

    Пользовательский Вход в facebook в приложении ios

    Запуск блока с dispatch_get_main_queue () не работает и зависает приложение

    Возможно ли подключение TCP к iPhone, прослушивающему порт в сети 3G?

    Изменение типа ключа возврата uitextfield при редактировании

    Анимация removeFromSuperview

    Изображения с высоким разрешением и дисплей сетчатки

    Xcode 4.2 Lion не устанавливает / запускает проект на старых устройствах. iPhone 3G 4.2.1

    В журналах сбоев указаны сбои приложений в UIPopoverPresentationController, которые не присутствуют в моем приложении

    Как получить имя изображения, используемое в UIImage?

    Сбой Xcode при экспорте или отправке в App Store

    Слияние двух изображений на одно изображение программно в iphone

    Как добиться эффекта плотности / тепловой карты в iOS (iPhone / iPad)?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.