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 Показать больше / меньше)

Другие вопросы по тегам