【问题标题】:Swift: Today Widget with animationSwift:带有动画的今日小部件
【发布时间】:2017-05-10 13:25:50
【问题描述】:

我想写一个带有 UIImageView 的 Today Widget Extension 来显示动画。

这是我的代码。

    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")
  }

代码编译成功。但是,无法加载小部件,在 iPhone 上运行时,小部件上会显示“无法加载”。并在调试打印中,打印“Done LayoutComponents”之后。它有一行“程序以退出代码结束:0”。

任何线索我做错了什么?谢谢。

请注意,每当我将代码 imageView.startAnimating() 放入 viewWillAppear() viewDidAppear 或 widgetPerformUpdate() 时,它都会退出并出现“无法加载”的问题。

我的问题实际上是 Today Extension 支持动画 UIImageView?

【问题讨论】:

  • 请将调试器的结果复制并粘贴到您的问题中。通常,如果向上滚动,您可以找到更多有关崩溃原因的信息。
  • 它没有崩溃。它以退出代码 0 退出。 2017-05-10 22:34:26.597307+0800 PetWidget[9632:3946653] 没有活动的动画块!程序以退出代码结束:0 全部打印出来。
  • 在小部件的情况下无法加载是崩溃。还要检查图像是否被定位。
  • 是的,如果我一张一张地显示图像没有问题。

标签: ios swift today-extension ios10-today-widget ios9-today-widget


【解决方案1】:

imageView.startAnimating() 属于viewDidAppear 而不是viewDidLoad,因为在视图出现之前没有任何动画。

还要验证情节提要中的“用户首选显式大小”是否已禁用 (Today's extension iOS10 Show More/Less)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多