Beispiel #1
0
    /// <summary>
    /// 使用kvData这个dic中的数据
    /// 刷新kv区域ui
    /// </summary>
    /// <param name="kvData">Kv data.</param>
    private void RefreshKVListUI(Dictionary <int, KVData> kvData)
    {
        ClearKVListUI();

        //创建新节点
        int i = 0;

        //创建ui相关
        foreach (KeyValuePair <int, KVData> p in kvData)
        {
            //Debug.Log("nafio--->k:"+p.Key+" v:"+p.Value);
            KVListItem keyItem = FreeItemPool.GetFreeItem();
            if (!keyItem.gameObject.activeSelf)
            {
                keyItem.gameObject.SetActive(true);
            }
            keyItem.gameObject.name = p.Value.key;
            keyItem.IsKey           = true;
            keyItem.Index           = i;
            keyItem.TreeItemID      = Convert.ToInt32(CurTreeItemID);
            //Debug.Log("==========>i:"+i+"====>CurItemID:"+CurTreeItemID);
            keyItem.SetContent(p.Value.key);
            keyItem.SetKVMgr(this);
            RectTransform keyRT = keyItem.gameObject.GetComponent <RectTransform>();
            keyRT.SetParent(KeyParentTrm as Transform);
            keyRT.anchoredPosition = new Vector2(0, i * -1 * UIEnum.KVItemH);
            keyRT.offsetMax        = new Vector2(-1, keyRT.offsetMax.y);
            keyRT.offsetMin        = new Vector2(1, keyRT.offsetMin.y);

            KVListItem valueItem = FreeItemPool.GetFreeItem();
            if (!valueItem.gameObject.activeSelf)
            {
                valueItem.gameObject.SetActive(true);
            }
            RectTransform valueRT = valueItem.gameObject.GetComponent <RectTransform>();
            valueItem.gameObject.name = p.Value.value;
            valueItem.IsKey           = false;
            valueItem.Index           = i;
            valueItem.TreeItemID      = Convert.ToInt32(CurTreeItemID);
            valueItem.SetContent(p.Value.value);
            //valueItem.DialogOpenType = p.Value.type;
            valueItem.SetKVMgr(this);
            valueRT.SetParent(ValueParentTrm as Transform);
            valueRT.anchoredPosition = new Vector2(0, i * -1 * UIEnum.KVItemH);
            valueRT.offsetMax        = new Vector2(-1, valueRT.offsetMax.y);
            valueRT.offsetMin        = new Vector2(1, valueRT.offsetMin.y);

            //keyItem.DialogOpenType = p.Value.type;

            keyItem.BrotherItem   = valueItem;
            valueItem.BrotherItem = keyItem;

            i++;
        }

        float h = i * UIEnum.KVItemH;

        RefreshKVContainerArea(h);
    }
Beispiel #2
0
    /// <summary>
    /// 清理掉kvitem UI
    /// </summary>
    public void ClearKVListUI()
    {
        //每次清理ui时把当前选择项置null否则切TreeItem时,当前选择项会出现混乱
        CurSelectedKVItem = null;
        //清理旧节点
        //清理key节点
        int j = 0;

        KVListItem[] _tempItems = KeyParentTrm.GetComponentsInChildren <KVListItem>();
        for (j = 0; j < _tempItems.Length; j++)
        {
            _tempItems [j].Reset();
            FreeItemPool.PushFreeItem2Pool(_tempItems [j]);
        }
        _tempItems = null;
        //清理value节点
        _tempItems = ValueParentTrm.GetComponentsInChildren <KVListItem>();
        for (j = 0; j < _tempItems.Length; j++)
        {
            _tempItems [j].Reset();
            FreeItemPool.PushFreeItem2Pool(_tempItems [j]);
        }
    }