在 DirectManipulation 中使用多個檢視區
使用多個檢視區時, 點擊測試會決定哪些檢視區 () 會受到使用者輸入的影響,方法是取得連絡人的螢幕位置,並判斷連絡人點擊的檢視區矩形。
直接操作中的常見案例是將一個檢視區放在另一個檢視區內,也稱為巢狀檢視區。 如果連絡人達到多個檢視區,視窗WndProc所呼叫的 SetContact呼叫順序會決定巢狀檢視區的父子關聯性。
規則:子項目應該先呼叫 SetContact,再呼叫父代。
連絡人會在檢視區中關閉。 SetContact 應該先在橙色 (子) 檢視區上呼叫,然後呼叫綠色 (父檢視區) 檢視區,以建立正確的階層。
以正確的檢視區為目標
連絡人可以與任意數目的檢視區相關聯,而且每個連絡人都可以指派給一組不同的檢視區。
您可以視需要將每個檢視區設定為支援特定互動。
根據這些設定, 直接操作 會識別哪些檢視區會處理輸入。 點擊測試階層中最子系的檢視區有第一個處理輸入的機會。 不過,鏈結和父系升級都可以變更哪些檢視區會處理輸入。
鏈結
在操作期間到達內容結尾時, 直接操作 會套用界限效果,表示內容無法進一步執行。 不過,如果子檢視區 鏈結 至父檢視區,則會隱藏此效果。 相反地,支援操作之點擊測試階層中最接近的上階檢視區會處理輸入。 如果操作的方向反轉,讓上階回到觸發鏈結的點,則操作「取消鏈結」和控制會移回子檢視區。
當使用者將子檢視區一路移動流覽至內容邊緣時,操作「鏈結」至父檢視區,而使用者會改為開始移動流覽父內容。
注意
X 和 Y 軸會彼此獨立鏈結,因此,如果對角移動流覽在 y 界限之前到達 x 界限,則操作會在 x 方向移動父系,同時繼續以 Y 方向移動子系。 若要啟用或停用鏈結,請在子檢視區上呼叫 SetChaining API。
Rails
在檢視區的設定中指定滑軌會影響從檢視區鏈結輸入的方式。 具體來說,輸入無法從滑軌子檢視區鏈結到其父系,以滑軌的「未滑軌」移動瀏覽模式。 若要在設定滑軌時鏈結輸入,使用者必須垂直或水準移動流覽並鎖定至滑軌。
顯示比例
如果子檢視區巢狀在父系內,而且兩者都設定為縮放,則縮放操作可以從子系鏈結到父系。 不過,如果操作繼續,它只會在父代上運作,而且無法對子系「取消鏈結」。 如果使用者將縮放從子系鏈結至父系, 直接操作 會暫停子系,直到從畫面移除與操作相關聯的所有連絡人為止。 此時,子系會從暫停釋出,而且使用者可以移動流覽子檢視區。
手勢目標:父系升級
手勢目標 是 直接操作 將連絡人群組在一起的程式,並決定哪些檢視區會處理輸入。 父代升級 是指輸入從子系傳輸到父系的情況。 例如,當使用者在設定為捲動的子檢視區內放下兩個連絡人和英吋時,輸入會升階為父系,以便進行縮放。 不論子檢視區上是否啟用鏈結,都會發生父代升級。
不同于鏈結,不會反轉父代升級。 父檢視區會繼續處理互動輸入,直到子檢視區 (停止處理輸入) 為止。