NGUI UIPopupList 列表

2015年01月16日 09:56 0 点赞 0 评论 更新于 2025-11-21 14:30

今天我们来深入了解一下 NGUI 插件中的 UIPopupList 列表,探究它的具体用途和使用方法。

概览

将 UIPopupList 脚本附加到一个按钮上,你就可以通过该按钮获取一个选项列表。

创建组件

若要创建一个组件,使其在点击按钮时弹出一些选项供用户选择,可按以下步骤操作:

  1. 为按钮添加 UIPopupList 脚本。
  2. 指定 Atlas 和 Font 选项。其中,Font 选项用于定义 popuplist 创建 label 所使用的字体。根据字体使用类型(bitmap 或 dynamic),如果使用 dynamic 字体,你还可以修改字体大小,同时也能调节字体颜色、字体间距等。
  3. 你还可以选择一个 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

作者信息

feifeila

feifeila

共发布了 3994 篇文章