NGUI UIPopupList 列表
今天我们来深入了解一下 NGUI 插件中的 UIPopupList 列表,探究它的具体用途和使用方法。
概览
将 UIPopupList 脚本附加到一个按钮上,你就可以通过该按钮获取一个选项列表。
创建组件
若要创建一个组件,使其在点击按钮时弹出一些选项供用户选择,可按以下步骤操作:
- 为按钮添加 UIPopupList 脚本。
- 指定 Atlas 和 Font 选项。其中,Font 选项用于定义 popuplist 创建 label 所使用的字体。根据字体使用类型(bitmap 或 dynamic),如果使用 dynamic 字体,你还可以修改字体大小,同时也能调节字体颜色、字体间距等。
- 你还可以选择一个 sprite 用于列表的 Background 和 Hightlight。Background 是列表项的背景,Hightlight 用于前景表示当前选中的选项。
指定选项
若要为 Popup List 指定不同的选项,只需在 Option 框中输入选项名字即可。这是一个多行文本框,每增加一行将创建一个新的列表项实体。例如,若你想有三个不同选项 “First”,“Second” 和 “Third”,只需像下面这样输入:
First
Second
Third
其他设置
- 动画效果:如果你不希望 popuplist 以动画形式出现,只需去掉 Animated 选项。
- 本地化:如果你希望 text 选项根据 Localization System 自动本地化,可以勾选 “Localized” 复选框。
选择事件处理
可视化设置
在 OnValueChange 部分,你可以指定一个方法,该方法会在 popuplist 选项被选择时调用。如果你已经在某个地方添加了 label,只需引用它的 SetCurrentSelection 方法,那么 label 的值将显示 popup list 的选择结果。具体操作是把 Label 游戏对象拖到 Notify 域,并从下拉列表中选择 UILabel.SetCurrentSelection 方法。
代码设置
若想通过代码改变监听器,可以使用 EventDelegate.Add 方法:
EventDelegate.Add(popupList.onChange, YourFunction);
这里假设你的方法名叫 YourFunction:
void YourFunction ()
{
Debug.Log("Selection: " + UIPopupList.current.value);
}
实用技巧
为了制作更实用的下拉列表,可在 OnValueChange 域引用按钮的 label,并选择它的 UILabel.SetCurrentSelection 方法。这样,当你从列表中选择选项时,按钮 label 的内容将自动更新。
类文档
更多详细信息可参考类文档:http://tasharen.com/ngui/docs/class_u_i_popup_list.html