Swift: виджет сегодня с анимацией
Я хотел бы написать расширение виджета сегодня с UIImageView, который отображает анимацию.
Вот мой код.
override func viewDidLoad() {
super.viewDidLoad()
layoutComponents()
imageView.startAnimating()
}
func layoutComponents() {
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
self.view.backgroundColor = UIColor.blue
let images = [UIImage(named:"1.png"), UIImage(named:"2.png"), UIImage(named:"3.png")]
imageView.frame = CGRect(x: 0, y: 0, width: self.extensionContext!.widgetMaximumSize(for: .expanded).width, height: self.extensionContext!.widgetMaximumSize(for: .expanded).height)
imageView.animationImages = images
imageView.image = images[0]
imageView.animationDuration = 1.0
imageView.animationRepeatCount = 0
self.view.addSubview(imageView)
debugPrint("Done LayoutComponents")
}
Код успешно скомпилирован. Тем не менее, виджет не может быть загружен, он отображает "Unable to Load" на виджете при запуске на iPhone. И в отладочной печати, после печати "Готово LayoutComponents". Имеется строка "Программа завершилась с кодом выхода: 0".
Любые подсказки, что я сделал не так? Благодарю.
Обратите внимание, что всякий раз, когда я помещаю код imageView.startAnimating() в viewWillAppear() viewDidAppear или widgetPerformUpdate(), он завершается, и возникает проблема "Невозможно загрузить".
Мой вопрос на самом деле является ли сегодня расширение поддержки анимации UIImageView?
1 ответ
imageView.startAnimating()
принадлежит в viewDidAppear
вместо viewDidLoad
так как нечего анимировать до появления представления.
Также убедитесь, что в раскадровке отключен "Предпочтительный явный размер пользователя" ( сегодняшнее расширение iOS10 Показать больше / меньше)