NGUI -- UIPopupList

Posted kakashi8841

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NGUI -- UIPopupList相关的知识,希望对你有一定的参考价值。

注意:本文翻译时NGUI版本已经更新到3.0.7

原文地址:http://www.tasharen.com/forum/index.php?topic=6751.0


概览

附加一个UIPopupList脚本到一个button将让你能通过他获得一个选项列表。


想创建一个组件,当你点击一个按钮,然后他会弹出一些选项让你选择,首先增加一个UIPopupList脚本给它,并制定Atlas和Font选项。你也可以选择一个sprite用于列表Background和Hightlight。Background是列表项的背景,Hightlight用于前景表示当前选中的选项。

为了对你的Popup List指定不同的选项,简单在Option框里面输入选项名字即可。它是一个多行文本框,你增加的每一行将创建一个新的列表项实体。所以如果你想有三个不同选项“First”,“Second”和“Third”——你只要像下面这样输入就可以了:

First
Second
Third


Font选项定义了popuplist用于创建label的字体。在上面的图片,first,second和third将使用inspector制定的“Arimo20”字体创建。根据字体使用类型(bitmap或dynamic),你将可能可以修改字体大小(如果使用dynamic字体的话)。你还可以调节字体颜色,字体间距等。

如果你不想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);


Pro-Tip

为了制作更实用的下拉列表,在OnValueChange域引用按钮的label,并选择它的UILabel.SetCurrentSelection方法。这样将在当你从列表中选择选项的时候自动更新它的内容。


类文档

http://tasharen.com/ngui/docs/class_u_i_popup_list.html



如果你有一些和这个组件相关的问题,也可以在下面讨论。

以上是关于NGUI -- UIPopupList的主要内容,如果未能解决你的问题,请参考以下文章

NGUI -- UISprite

NGUI -- UITexture

NGUI -- UILabel

NGUI -- Scroll View

unity重写软键盘for Android NGUI

NGUI -- UI2DSprite