我想用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上运行时,窗口小部件上显示“无法加载”。并在调试打印中,打印“完成LayoutComponents”后。它有一行“程序以退出代码结束:0”。
我做错了什么线索?感谢。
请注意,每当我将代码imageView.startAnimating()放在viewWillAppear()viewDidAppear或widgetPerformUpdate()中时,它都会退出并出现“无法加载”的问题。
我的问题实际上是今日扩展支持动画UIImageView吗?
答案 0 :(得分:0)
imageView.startAnimating()
属于viewDidAppear
而非viewDidLoad
,因为在视图显示之前没有任何动画可用。
同时验证故事板中是否禁用了“用户首选显式尺寸”(Today's extension iOS10 Show More/Less)