UI 用戶端用來建立、銷毀及修改 View 的 Scenic API 組合,統稱為 View 系統。
查看
UI 用戶端會與 Scenic 互動來管理 View,Scenic 會代為維護所有 View,並將 View 組合成一致的 View Tree。
每個 View 都會定義 2D 座標系統;UI 用戶端會在 View 的座標系統中嵌入圖形內容,並根據相同的系統接收輸入事件。
除非先將圖形內容嵌入 View,否則 UI 用戶端無法將圖形內容呈現在螢幕上。
可視區域
UI 用戶端可以要求 Scenic 建立名為 Viewport 的物件,藉此在自己的 View 中嵌入其他 View。這個 Viewport 會與其「代管」的特定 View 內在連結。
代管的 View 可能 (也經常) 由其他元件的 UI 客戶端擁有。
檢視樹狀結構
使用 View 和 Viewports UI 的用戶端可以協同合作,建立全域分散式內容樹狀結構,供 Scenic 調度用於轉譯及查詢命中測試。
這個 View 的全球樹狀結構稱為 View Tree,Scenic 會代表 UI 用戶端維護這個樹狀結構。
Scenic 算繪的所有內容都會封裝在 View 中。每個傳送至 UI 用戶端的輸入事件,都與該用戶端擁有的檢視畫面相關。
查看樹狀結構的顯示和輸入關係
Scenic 會將檢視區塊樹狀結構的根層級檢視區塊呈現至螢幕,也就是說,根層級檢視區塊的尺寸與螢幕尺寸相同。
Scenic 會根據座標系統的大小和位置,將檢視區塊之間的顯示空間分割開來。
Scenic 的命中測試系統會根據此分割作業運作,讓 UI 用戶端根據 View 的大小和位置接收輸入事件。
查看樹狀圖規則
- 不允許依附元件週期。
- 每個 View 只能有一個其他 View 做為父項。
- 每個 View 只會知道自己的座標系統。
- 每個 View 都可以透過平移、旋轉和縮放,控制代管子 ViewPort 的座標系統。