有关场景简化的WatchKit Performance提示的澄清

时间:2015-05-07 05:53:58

标签: watchkit

任何人都可以从WatchKit Development Tips页面澄清此声明吗?

  

简化控制器场景。   尽可能减少隐藏对象的数量,以显着缩短加载时间。例如,单个控制器场景中控制器布局的五个版本将导致在显示控制器之前创建所有对象

我现在已经阅读了几十次,无法弄清楚它想说什么。

  1. 什么是"场景"?它是指故事板场景吗?
  2. 是"隐藏的物品"引用字面上隐藏的UI元素,如隐藏按钮?
  3. 如何有五个版本的控制器布局?这只是不计算。
  4. 当加载一个故事板,并且文件中有10个不同的WKInterfaceControllers时,即使初始控制器为空,它会非常慢吗? Aren这些只是根据需要加载? 或者,拥有10个原型行的单个表会更好吗 - 每个行实际上都是一个独立的界面 - 一次只实例化一个?

1 个答案:

答案 0 :(得分:1)

因为我们无法以编程方式将接口元素添加到当前版本的WatchKit中的控制器,所以我们可能需要显示的任何界面元素都必须包含在Storyboard场景中。通过包含这些最初隐藏的元素,我们可以根据需要以编程方式隐藏或取消隐藏这些元素。

例如,通常包含最初隐藏的全屏标签。然后,如果由于某种原因需要显示全屏消息,则填充文本,取消隐藏标签,并隐藏屏幕上的其余元素。为了更容易隐藏一组元素,它们通常包含在WKInterfaceGroup中,因此只需要隐藏顶级组元素。

所以,回答你的问题:

  1. 的确,“场景”是标准的故事板场景。
  2. 是的,“隐藏物品”指的是字面上隐藏的物体,如上所述。
  3. 使用我所描述的方法,您可以创建五个顶级WKInterfaceGroup元素,每个元素都有自己的一组控件和布局。然后,你可能会取消隐藏显示和隐藏所有其他内容的那个。
  4. 我在自己的应用中使用这些技术,但我通常没有超过三个顶级组。

    所以是的,因为初始化和布局所有这些元素需要时间(即使它们被隐藏),建议将其保持在最低限度。

    关于在故事板中加载接口控制器,您是正确的,只加载了所需的接口控制器。但是,如果您有一组五个基于页面的控制器,则在激活第一个页面之前,它们都将被加载和初始化。然后将适当地加载其他控制器。

    创建唯一行是另一种可能性,但无论您是这样做还是只是隐藏/取消隐藏顶级组,都取决于您应用的特定需求。一如既往,值得在实际硬件上进行测试。

相关问题