Swift:带有动画的今日小部件
Posted
技术标签:
【中文标题】Swift:带有动画的今日小部件【英文标题】:Swift: Today Widget with animation 【发布时间】: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 全部打印出来。 在小部件的情况下无法加载是崩溃。还要检查图像是否被定位。 是的,如果我一张一张地显示图像没有问题。 【参考方案1】:imageView.startAnimating()
属于viewDidAppear
而不是viewDidLoad
,因为在视图出现之前没有任何动画。
还要验证情节提要中的“用户首选显式大小”是否已禁用 (Today's extension ios10 Show More/Less)
【讨论】:
anhuiyouxi.com/today-s-extension-ios10-show-more-less 这有帮助吗?他们和你有同样的错误:No active animation block
我的始终处于扩展模式。模式的改变不会改变结果:(
***.com/questions/40441773/… 您是否针对 iOS9 进行了测试?看来 iOS10 的做法有所不同。
是的,iOS9 和 8 也试过了。同样的输出我想知道 Today Widget 是否支持 UIImageView 动画?以上是关于Swift:带有动画的今日小部件的主要内容,如果未能解决你的问题,请参考以下文章