• 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 演示项目,内容如下,供大家参考。

     

    演示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

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

  • 相关阅读:
    js 模块循环加载
    英文
    浏览器
    ecma
    Speaking JavaScript
    es6 exploringjs 2
    es6 兼容性
    es6 中文
    Exploring ES6
    探索ES6(ES2015)
  • 原文地址:https://www.cnblogs.com/LiuGuozhu/p/5959304.html
Copyright © 2020-2023  润新知