测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
版本最新发行 | 2016年10月 |
SPM支持 SPM | ✗ |
由Kiavash Faisali维护。
KFWatchKitAnimations 提供了一个非常易于使用的工具,让 Watch 开发者能够通过记录 iOS 模拟器中的任意动画来创建平滑、流畅的 60 FPS 动画,对 WatchKit 高度优化。
请也查看 KFSwiftImageLoader,这是一个高性能、轻量级、节能的纯 Swift 异步网络图像加载库,支持 iOS 和 Watch,具有内存和磁盘缓存。
Watch 示例应用将于10月16日推出!
目前,想要为 Watch 创建动画的开发者需要一位才华横溢的设计师来将一个动画分解成一系列进程中的逐帧图片,当这些图片拼接在一起时,就会产生一种连续、高帧率的动画幻觉。
这与 iOS 开发者习惯了的方式截然不同,因为在 Watch 开发中,并没有像 CoreAnimation 和 CoreGraphics 这样的框架可以利用。
extension UIView {
func snapshots(duration: CFTimeInterval,
imageName: String,
animations: (() -> Void)? = nil,
completion: ((_ success: Bool) -> Void)? = nil)
}
没错,KFWatchKitAnimations 中只有一个函数,无需编写模板代码,就可以生成一系列连续图像,从而生成美丽的 60 FPS 动画。这些图像位于 iOS 模拟器的 Documents 文件夹中的一个子文件夹中,您可以将它们拖放到您的 Watch 应用中进行即时使用。
只需使用即可。
self.someView.snapshots(duration: 1.0, imageName: "fadeOutThenInView", animations: {
UIView.animateWithDuration(0.5, animations: {
self.someView.alpha = 0.0
}) { finished in
UIView.animateWithDuration(0.5) {
self.someView.alpha = 1.0
}
}
})
由于上述函数中的“animations”块是可选的,且在省略该方法时默认为 nil,您可以将上述示例实现如下
self.someView.snapshotsWithDuration(1.0, imageName: "fadeOutThenInView")
UIView.animateWithDuration(0.5, animations: {
self.someView.alpha = 0.0
}) { finished in
UIView.animateWithDuration(0.5) {
self.someView.alpha = 1.0
}
}
虽然后者解决方案使您可以在仅对原始代码进行很少修改的情况下捕获现有应用中的动画截图,但重要的是要知道前一个解决方案具有更小的初始内部设置开销,并且可读性大大提高,因此它更受青睐。
在录制动画时,务必检查控制台,因为将打印包含录制动画文件夹的文件路径。复制控制台中的打印文件路径后,简单打开Finder并按“Cmd + Shift + G”,然后粘贴复制的文件路径。最后,将动画文件夹拖放到您的WatchKit应用中,即可完成!
注意:针对42mm Watch优化的单个录制将很好地缩放到38mm尺寸,因此请勿担心重复录制。
请下载本存储库中的示例应用“WatchKitAnimations”,以详细了解如何为 Watch创建复杂动画。
Kiavash Faisali
KFWatchKitAnimations适用于MIT许可协议。
版权所有 © 2016 Kiavash Faisali
任何人如果获得本软件及其相关文档文件(以下简称“软件”)的副本,均有权无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许被提供的软件使用之人进行前述行为,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要由软件组成的部分中。
该软件按“现状”提供,不提供任何形式的明示或暗示担保,包括但不限于对适销性、特定目的适用性和非侵权的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论这些责任是由于合同、侵权或其他原因引起的,无论这些责任是否与软件或其使用或其他行为有关。