如何创建基于页面的WatchKit应用程序?

时间:2015-03-08 22:39:29

标签: ios objective-c swift pagination watchkit

我正在尝试创建基于页面的WatchKit应用。当应用程序加载时,我想要一个带有图像的页面和一个分页视图中的按钮,并且滑动应该在一组图像之间切换。

Home View

https://www.dropbox.com/s/yn3tstngx8h94xo/iOS%20Simulator%20Screen%20Shot%20-%20Apple%20Watch%2009-Mar-2015%203.28.01%20am.png?dl=0

我试过WKInterfaceController.reloadRootControllersWithNames(["home", "home", "home", "home", "home"], contexts: ["1", "2", "3", "4", "5"]),其中home是InterfaceController的标识符。我从另一个InterfaceController调用此方法,这是最初的接口控制器。我得到了基于页面的视图,但初始视图是空白的。

    import WatchKit
    import Foundation

    class InterfaceController: WKInterfaceController {

        override func awakeWithContext(context: AnyObject?) {
            super.awakeWithContext(context)

            WKInterfaceController.reloadRootControllersWithNames(["home", "home", "home", "home", "home"], contexts: ["1", "2", "3", "4", "5"])
        }

        override func willActivate() {
            // This method is called when watch view controller is about to be visible to user
            super.willActivate()
        }

        override func didDeactivate() {
            // This method is called when watch view controller is no longer visible
            super.didDeactivate()
        }
    }
  1. 我是否正确使用reloadRootControllersWithNames方法创建基于页面的应用程序?
    • 我应该在哪里调用此方法?
    • 是否有一个入口点文件,如WatchKit的AppDelegate,而不是故事板中的箭头?
    • 我是否可以在不编写单独代码的情况下在故事板中配置分页视图?
  2. 现在我的整个视图都是分页的。我只是希望图像改变,我不希望按钮移动。我怎么能做到这一点? http://www.apple.com/watch/films/#film-fitness请查看此视频。我希望他们在02:17显示的分页。
  3. 最后一件事是他们做的动画。他们为文本和练习环显示的动画。如果有人能告诉我如何制作这样的动画,我真的很感激。 :)

2 个答案:

答案 0 :(得分:2)

仅回答问题1:

我几乎使用了你在这里使用的技术创建了一个基于页面的应用程序,除了我调用了WKInterfaceController.reloadRootControllersWithNames() 来自willActivate()函数,而不是awakeWithContext()函数。不确定这是否重要。

我假设“home”是不同WKInterfaceController的标识符?如果您尝试将启动接口控制器用作分页接口控制器,我认为它不会正常工作。这可能是你问题的根源。

但是,只有在页面数量可变的情况下,才需要以编程方式指定页面的方法。如果您在构建时知道页面布局,可以将它们全部放在故事板中,然后按一个控件拖动另一个,选择“下一页”关系。

如果您使用故事板,可以将起始接口控制器作为第一个页面,然后后续接口控制器可以使用相同的类。

答案 1 :(得分:0)

#2和#3的答案很简单:你不能,至少不是当前版本的WatchKit。