今天整理一下在 Apple Watch 上实现 Page 和 圆形进度条两种效果,刚开始做的时候也很头大,也没见有多少人写 特别是 关于 圆形进度条效果
的博客。其实这两种效果实现起来超乎想象的简单。
Page
实现Page效果有两种方式:
第一种 在storyboard上连线
第一个controller连第二个controller选择next page
第二个controller连第三个controller选择next page
他们之间的返回,SB也已经为我们做好了
第二种 使用代码
ExtensionDelegate
func applicationDidFinishLaunching() {
// Perform any final initialization of your application.
WKInterfaceController.reloadRootControllers(withNames: ["Controller1",
"Controller2",
"Controller3"],
contexts: nil)
}
如果说我想让Page中的第一个controller的按钮操作影响第二个controller,我目前找到的方法是 notification
圆形进度条
当时为了这个东西也是翻遍的了 度娘
后来还是在stackoverflow上找到一个答案。 WKImageAnimatable
协议的有一个函数:
// Play a subset of images for a certain number of times. 0 means repeat until stop.
public func startAnimatingWithImages(in imageRange: NSRange, duration: TimeInterval, repeatCount: Int)
类似 UIImageView
的 startAnimating() 方法,看到这里明眼人就明白了,watch上实现的进度条是一张图片,进度的改变的过程就是一组帧动画你要做的就是算好执行到哪一帧
实现进度条用到的图片已经有大大们制作好了工具传送门