滑动界面,如苹果手表上的锻炼应用程序

时间:2015-12-14 19:19:33

标签: watchkit apple-watch

有没有人知道如何在锻炼应用程序上实现这样的滑动面板?当你开始锻炼时,底部面板像页面一样滑动,但只有底部滑动而不是整个屏幕。这是如何实现的?我似乎找不到能做到这一点的任何事情?

1 个答案:

答案 0 :(得分:3)

请注意:我对此问题的原始答案适用于watchOS 1.使用watchOS 2& 3,Apple彻底改进了我们在手表应用程序中可以做的事情。我还没有确定OP的原始目标是否可行。

简而言之,我认为你无法达到你想要的效果。我相信Apple正在整个应用程序中使用未记录的电话。

更长的解释......

我不是故意用另一个问题回答你的问题,但是你确定了如何复制Workout应用程序在你选择你想做的训练时演示的行为吗?

例如,如果您选择“户外周期”,则后续接口控制器(您要询问的接口控制器)将显示为pushControllerWithName:context:presentControllerWithNames:contexts:之间的奇怪混合。

Workout - Outdoor Cycle - Distance

与当前时间配对的“< Outdoor Cycle”标题是pushControllerWithName:context:呈现推送控制器的方式。相反,presentControllerWithNames:contexts:是显示一组“分页”控制器的机制。此外,据我所知,没有机制可以改变Watch应用程序的全局色调颜色,但这正是您在要询问的页面上向左和向右滑动时所发生的情况。

Workout - Outdoor Cycle - Elapsed Time

这有点微妙,但是如果点击“锻炼”列表中的“户外循环”,您会注意到您所询问的页面会显示一个光滑的动画,将“户外循环”更改为“开始”。此行为无法与presentControllerWithNames:contexts:一起复制,因为它始终从屏幕底部向上滑动模态界面。

显然,上述大多数都无法直接解决您的问题。它更多地解决了使您询问的控制器出现的问题。我将通过所有这些来证明Apple在其预装的应用程序中明显使用了未记录的功能。

更直接地解决您的问题:

  1. 没有机制可以更改Watch应用程序的全局色调颜色,但这正是您在询问的页面上向左和向右滑动时所发生的情况。
  2. WKInterfaceController中没有“UIContainerView”(AKA添加子视图控制器)的概念。同样,这正是Workout应用程序中演示的行为。
  3. 您点击以显示您询问的控制器的锻炼表格是分层导航的示例,而您询问的屏幕是基于页面的导航的示例。这与使用多个内容屏幕的Watch应用程序的声明直接相矛盾,您必须选择一种在不同屏幕之间导航的技术。观看应用支持两种导航样式,互斥。“(强调我的。)(WatchKit Programming Guide: Interface Navigation
  4. 希望,毫无疑问,我会对上述任何或所有内容都不正确。如果我,请上学!