2015-05-07 27 views
0

任何人都可以從WatchKit Development Tips頁面澄清此聲明嗎?澄清WatchKit有關場景簡化的性能提示

簡化控制器場景。 儘可能減少隱藏對象的數量,以顯着提高加載時間。例如,

我現在已經閱讀了幾十倍,顯示控制器之前創建一個單個的控制器場景將導致所有對象控制器的佈局的五個版本,並且不能找出它的試圖說。

  1. 什麼是「場景」?它是指故事板場景嗎?
  2. 「隱藏的對象」指隱藏的UI元素,如隱藏的按鈕?
  3. 怎麼可能有五個版本的控制器的佈局?這只是不計算。

當一個故事板被加載,並且在文件中有10個不同的WKInterfaceControllers時,即使初始控制器爲空,它會非常慢嗎?這些只是根據需要加載嗎? 或者,最好是有一個包含10個原型行的單個表格 - 每個表格實際上都是一個獨立的接口 - 它們一次只能實例化一個?

回答

1

因爲我們無法以編程方式將界面元素添加到當前版本的WatchKit中的控制器,所以我們可能需要顯示的任何界面元素都必須包含在Storyboard場景中。通過包含這些初始隱藏的元素,我們可以根據需要以編程方式隱藏或取消隱藏這些元素。

例如,通常包含最初隱藏的全屏幕標籤。然後,如果出於某種原因需要顯示全屏消息,則會填充文本,取消隱藏標籤,並且隱藏屏幕上其餘的元素。爲了更容易地隱藏一組元素,它們通常包含在WKInterfaceGroup中,因此只需要隱藏頂層組元素。

因此,要回答你的問題:

  1. 事實上, 「場景」 是一個標準的故事板的場景。
  2. 是的,「隱藏的對象」指的是字面上隱藏的對象,如上所述。
  3. 使用我描述的方法,您可以創建五個頂級WKInterfaceGroup元素,每個元素都有其自己的一組控件和佈局。然後,您可能會取消隱藏顯示並隱藏所有其他內容的顯示。

我在我自己的應用程序中使用這些技術,但我通常沒有超過三個頂級組。

所以是的,因爲初始化和佈置所有這些元素需要時間(即使它們是隱藏的),建議將它保持在最低限度。

關於加載故事板中的接口控制器,您是正確的,只加載所需的接口控制器。但是,如果您有一組五個基於頁面的控制器,則它們將在激活第一頁之前加載並初始化。其他控制器則會根據需要加載。

創建獨特行是另一種可能性,但無論您是這樣做還是僅隱藏/取消隱藏頂級組取決於您的應用程序的特定需求。一如既往,值得在實際硬件上進行測試。

+0

看起來像使用基於表格的方法可能確實比隱藏組方法更可取,這取決於a)實際性能,以及b)插入/刪除行和隱藏/取消隱藏組之間的UI動畫/外觀差異。如果沒有關於這一點的明確答案,蘋果提供的通用簡單場景的建議就顯而易見了:當然,佔用空間更小的UI加載速度更快。不過,您的澄清絕對是一個受歡迎的完整性檢查,並且對動態用戶界面的一種方法提供了有益且徹底清晰的描述。謝謝! – SG1