| 本帖最后由 夜行的猫仔 于 2014-10-19 02:06 编辑 
 原创:夜行的猫仔  (见2楼)在网上查到的UIPopupList文章都如下所示,猫仔自己总结了一些用法放在2楼,希望用得上。
 ---------------------------------------------------------------------------------------------------
 把UIPopupList脚本挂到一个button上,就可以在你点击按钮的时候弹出选项列表,之后选择你想要的选项。
 
 
  
 想要创建一个有很多选项的popup list,首先你要挂一个UIPopupList脚本到一个Button上,然后指定Atlas和Font属性。你可以选择指定的sprite当做Background和Heighlight。Background用来当做弹出列表的背景,Heightlight是用来表示当前选项的高亮sprite。
 
 
 可以在Options框里面为Popup List指定不同的选项。这是一个多行文本框,每一行就是一个选项。比如有三个选项——“First”,“Second”和“Third”——你输入的内容如下: 
 [mw_shl_code=csharp,true]First
 Second
 Third [/mw_shl_code]
 Font表示创建popup list的label用的什么字体。上面图中first、second和third选项的label就是用inspector中指定的“Arimo20”字体创建的。如果你用的bitmap字体,你可能需要修改Font Size;如果是dynamic字体,你可能要修改Font Style。Text Color用来修改文字的颜色,Padding用来控制文字与从Atlas中选择的Background(border)之间的间隔。
 
 如果不想要弹出选项时候的动画,而仅仅就是直接显示选项,可以勾选掉Animated选项。
 
 如果选项要使用本地化系统Localization System,勾选Localized。
 
 OnValueChange部分你可以指定一个函数,当选项变化的时候调用。如果你有一个label,可以用它的SetCurrentSelection函数来显示当前Popup List选择的选项。操作步骤是把这个label的game object拖拽到Notify属性里面,之后在下拉框里面选择UILabel.SetCurrentPercent。
 
 通过代码可以监听变化,使用EventDelegate.Add函数:
 [mw_shl_code=csharp,true]EventDelegate.Add(popupList.onChange, YourFunction); [/mw_shl_code]
 YourFunction的类型应该是void FuncName(void),下面这样:[mw_shl_code=csharp,true]void YourFunction ()
 {
 Debug.Log("Selection: " + UIPopupList.current.value);
 }[/mw_shl_code]
 小贴士
 
 通过引用一个按钮的label到OnValueChange中,并且选择UILabel.SetCurrentSelection方法,可做出一个比较实用的Popup List。这样做回让label自动更新成你选择的选项。
 
 类文档
 
 http://tasharen.com/ngui/docs/class_u_i_popup_list.html
 
 |