示例#1
0
        /// <summary>
        /// 创建子项
        /// </summary>
        public void OnCreateItem()
        {
            //如果值没有发生改变,则直接跳过

            //删除子项
            OnDeleteItem();

            //生成子项
            foreach (var name in Names)
            {
                var go = Instantiate(dropdownItem, gridLayout.transform);
                go.SetActive(true);

                var item = go.GetComponent <KGUI_DropdownItem>();

                item.OnInitialized(this, name);

                Items.Add(item);
            }

            RectTransform content = gridLayout.GetComponent <RectTransform>();

            //设置子项的高度
            Vector2 delta = content.sizeDelta;

            //设置背景框的高度
            content.sizeDelta = new Vector2(delta.x, gridLayout.cellSize.y * Names.Count);

            //因为设置了瞄点,所以需要根据父对象的高度,重新进行Y轴坐标的计算。

            float y = content.parent.GetComponent <RectTransform>().sizeDelta.y / 2 - content.sizeDelta.y / 2;

            content.localPosition = new Vector3(content.localPosition.x, y, content.localPosition.z);

            //设置滚动数值,自动填充
            scrollView.SetRectData();

            //没有激活的话,则显示全部
            gridLayout.cellSize = new Vector2(gridLayout.GetComponent <RectTransform>().sizeDelta.x, gridLayout.cellSize.y);

            //设置所有子项的大小

            //设置默认参数
            for (int i = 0; i < Items.Count; i++)
            {
                Items[i].SetItemData(gridLayout.cellSize);
                //设置默认值
                if (i == 0)
                {
                    Items[i].OnDown(0); //设置被选中状态
                }
            }
        }
示例#2
0
        public override void OnInspectorGUI()
        {
            GUILayout.BeginVertical("box", GUILayout.Width(500));

            EditorGUILayout.PropertyField(vertical, true, null);
            EditorGUILayout.PropertyField(horizontal, true, null);
            EditorGUILayout.PropertyField(panel, true, null);
            EditorGUILayout.PropertyField(content, true, null);

            GUILayout.Space(20);

            if (GUILayout.Button("刷新", GUILayout.Width(100), GUILayout.Height(21)))
            {
                scrollView.SetRectData();
            }

            GUILayout.EndVertical();

            serializedObject.ApplyModifiedProperties();
        }
示例#3
0
        /// <summary>
        /// 写入数据到表格中
        /// </summary>
        /// <param name="datas">数据</param>
        /// <param name="i">默认为第一个表格(暂时只记录第一个表格数)</param>
        public void SetDataToTable(string[] datas, int i = 1)
        {
            if (datas == null)
            {
                return;
            }
            if (index >= tableManager.Tables[i].Rows.Count - 1)
            {
                tableManager.AddRow(tableManager.Tables[i]);
                scrollView.SetRectData();
                scrollView.vertical.SetRectData();
            }
            index++;
            Dictionary <Vector2Int, string> dict = new Dictionary <Vector2Int, string>();

            for (int j = 0; j < datas.Length; j++)
            {
                dict.Add(new Vector2Int(index, j), datas[j]);
            }
            tableManager.AddData(tableManager.Tables[i], dict);
        }