iWatch-page

今天整理一下在 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)
}
`</pre>

如果说我想让Page中的第一个controller的按钮操作影响第二个controller,我目前找到的方法是 notification

## [](#圆形进度条 "圆形进度条")圆形进度条

当时为了这个东西也是翻遍的了 度娘
后来还是在stackflow上找到一个答案。 `WKImageAnimatable` 协议的有一个函数:

<pre>`// 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上实现的进度条是一张图片,进度的改变的过程就是一组帧动画你要做的就是算好执行到哪一帧

实现进度条用到的图片已经有大大们制作好了工具传送门