UGUI 中Dropdown控件的使用经验

UGUI 中Dropdown控件的使用经验

在Untiy的UGUI 刚出来的时候,是没有“下拉列表”(Dropdown)控件的,这在无形中给我们的UI界面开发带来困难,不过在Untiy5.2.2之后这个局面终于打破。下面我来说一下关于Dropdown 控件的使用。

1: 添加“下拉列表”内容。

public Dropdown Drd_IPList;
    
         //初始化
        Dropdown.OptionData op1=new Dropdown.OptionData();
        op1.text = "220.110.1.10";
        Drd_IPList.options.Add(op1);

Dropdown.OptionData op2 = new Dropdown.OptionData();
        op2.text = "220.110.1.11";
        Drd_IPList.options.Add(op2);

2:  获取当前节点。

Txt_CurrentNode.text = Drd_IPList.options[Drd_IPList.value].text;

3: 删除指定节点。

Drd_IPList.options.Remove(_DicDropDown["220.110.1.11"]);

以上内容是一个简单的说明,结合以上功能实现,我做了一个Demo 演示项目,内容如下,供大家参考。

UGUI 中Dropdown控件的使用经验

演示Demo 项目 如下:

public class TestDropdown : MonoBehaviour
{
    //IP列表
    public Dropdown Drd_IPList;
    //显示选择的内容
    public Text Txt_CurrentNode;
    //存储Dropdown 控件中的内容,为删除使用
    private Dictionary<string, Dropdown.OptionData> _DicDropDown;

void Start () {
        _DicDropDown=new Dictionary<string, Dropdown.OptionData>();

//清空默认节点
        Drd_IPList.options.Clear();

//初始化
        Dropdown.OptionData op1=new Dropdown.OptionData();
        op1.text = "220.110.1.10";
        Drd_IPList.options.Add(op1);

Dropdown.OptionData op2 = new Dropdown.OptionData();
        op2.text = "220.110.1.11";
        Drd_IPList.options.Add(op2);

Dropdown.OptionData op3 = new Dropdown.OptionData();
        op3.text = "220.110.1.12";
        Drd_IPList.options.Add(op3);
        //初始化节点暂存集合中。
        _DicDropDown.Add(op1.text, op1);
        _DicDropDown.Add(op2.text, op2);
        _DicDropDown.Add(op3.text, op3);
    }

/// <summary>
    /// 获取当前节点
    /// </summary>
    public void GetCurrentNode()
    {
        Txt_CurrentNode.text = Drd_IPList.options[Drd_IPList.value].text;
    }

/// <summary>
    /// 删除节点
    /// </summary>
    public void RemoveNode()
    {
        //Drd_IPList.options.Remove(); //必须删除“OptionDate 类型”
        if (_DicDropDown.ContainsKey("220.110.1.11"))
        {
            Drd_IPList.options.Remove(_DicDropDown["220.110.1.11"]);
        }
    }

}//Class_end

如果各位朋友,有对以上代码有疑问的,可以直接留言。谢谢。

上一篇:Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again 问题分析


下一篇:python xlwt模块生成excel文件并写入数据 xlrd读取数据