原文:http://www.tasharen.com/forum/index.php?topic=6758.0
NGUI討論羣:333417608
概述
UITable用來方便的在一個可變尺寸的單元格子排列widget。如果你熟悉HTML的table,就會發現他們差不多。編輯時和運行時都可以用。如果你想要固定格子大小,那就用Grid。
選擇一個panel,之後在scene
view中右鍵點擊任何地方,在Create menu裏面選擇Table,就可以創建一個UIGrid。當然你也可以簡單的把UITable組件掛到任何game
object上。
Table的排列方向會向左。Columns控制每一行有多少個子物體,超過這個數量多餘的會放在新的一行。根據Direction的設置,決定新行會放在之前行的上面還是下面。
默認情況下Table重新調整所有的子節點的位置,子節點的排序是以創建時候的順序爲準。如果想要指定排列順序,就把子節點的名字用字母排序的方式命名
(“001”, “002”,“003”等),之後勾選Sorted。這樣做就會讓Table在重新排列之前先按名字進行排序。
最後,如果你想給看不到的子節點留下位置,勾選掉Hide Inactive。默認是勾選上的,所有看不到的子節點在排列時會被忽略。
你可以在每個格子中間加入空隙通過修改Padding屬性。
注意每個子節點的pivot的問題。如果所有自己點都是居中的pivot,他們會以table的中心開始排列。如果是左上的pivot,他們會以table的左上角開始排列。最好對每個table裏面的條目使用同樣的pivot。
Table在運行時排列很管用,但是也可以在編輯狀態下使用。只要右鍵這個腳本之後選擇Execute選項。當你不需要這個腳本的時候,直接刪除就可以。
小貼士 #2
在子節點上的TweenScale操作會觸發table重新計算尺寸,把其他的節點重置位置。用這個方法可製作可摺疊的區域,就像NGUI裏的例子Quest Log一樣。
類文檔
http://tasharen.com/ngui/docs/class_u_i_table.html