测试滑动界面 NGUi的滑动列表的点击item展开,显示详情

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using WW;




//测试滑动界面  NGUi的滑动列表的点击item展开,显示详情
public class huadongItem : MonoBehaviour {


    public GameObject itemParent;


    float size = 1;


    private void Start()
    {
        init();
    }


    void init()
    {
        UIGrid itUIgrid = GameObject.FindObjectOfType<UIGrid>();


        if (itUIgrid != null)
        {
            itUIgrid.repositionNow = true;
        }




        for (int i = 0; i < itemParent.transform.childCount; i++)
        {
            GameObject currentItem = itemParent.transform.GetChild(i).gameObject;
            currentItem.transform.localPosition = new Vector3(0, 0 - i * size, 0);
            //改个名
            currentItem.name = "item" + i;
            //绑定item点击 
            currentItem.AddComponent<UIEventListener>().onClick = ItemClick;
            //currentItem.transform.Find("HIdebg").transform.Find("SendMsgBtn")
            //    .gameObject.AddComponent<UIEventListener>().onClick = ItemSendMsgBtnClick;
            //currentItem.transform.Find("HIdebg").transform.Find("DeleteFriendBtn")
            //    .gameObject.AddComponent<UIEventListener>().onClick = ItemDeleteButtonBtnClick;
        }
    }
    bool m_IsExistUnFold = false;


    int m_CurrentClickNum=0;






    public GameObject m_FriendMain;
    private void ItemClick(GameObject itemGo)
    {
        Log.log("size==="+size);
        //UIGrid itUIgrid = itemParent.GetComponent<UIGrid>();
        //if (itUIgrid != null)
        //{
        //    itUIgrid.repositionNow = true;
        //}




        m_CurrentClickNum = int.Parse(itemGo.name.Substring(4));
        if (m_IsExistUnFold)
        { 
            if (m_PreClickNum == m_CurrentClickNum)
            {
                FoldItem(itemGo);             
            }
            else
            {
                FoldItem(itemGo);
                UnFoldItem(itemGo);
              
            }
        }
        else
        {
            UnFoldItem(itemGo);
        }


     


    }


    //界面向上收缩
    void FoldItem(GameObject go)
    {


        itemParent.transform.GetChild(m_PreClickNum).Find("HIdebg").gameObject.SetActive(false) ;
 
        Transform itemParent_1 = m_FriendMain.transform.Find("UIGrid");
      //  size = itemParent_1.GetComponent<UIGrid>().cellHeight;
        for (int i = m_PreClickNum+1 ; i < itemParent_1.childCount; i++)
        {
            Log.log("cccccccccccccccc");


            GameObject currentItem = itemParent_1.GetChild(i).gameObject;
          //  Vector3 regin = currentItem.transform.localPosition;
            Vector3 target = currentItem.transform.localPosition + new Vector3(0,0+  size, 0);
            //  GameObjectPositioAnim(currentItem, regin, target);


            currentItem.transform.localPosition = target;
        }




        m_IsExistUnFold = false;


        UIGrid itUIgrid = itemParent.GetComponent<UIGrid>();
      //  if (itUIgrid != null)
        //{
            //itUIgrid.repositionNow = true;
       // }
        //  m_PreClickNum = m_CurrentClickNum;
    }




    //界面向下展开
    int m_PreClickNum=1;
    private void UnFoldItem(GameObject go)
    {
      


        go.transform.Find("HIdebg").gameObject.SetActive(true);
        Transform itemParent_2 = m_FriendMain.transform.Find("UIGrid");


        Log.log("点击个数" + go.transform.Find("HIdebg").childCount);


        // size = itemParent_2.GetComponent<UIGrid>().cellHeight;


        size = 200 * (float)go.transform.Find("HIdebg").childCount;
        for (int i = m_CurrentClickNum + 1; i < itemParent_2.childCount; i++)
        {
            GameObject currentItem = itemParent_2.GetChild(i).gameObject;
        //    Vector3 regin = currentItem.transform.localPosition;
            Vector3 target = currentItem.transform.localPosition + new Vector3(0, 0 -  size, 0);
         //   GameObjectPositioAnim(currentItem, regin, target);


            currentItem.transform.localPosition = target;
        }
        m_IsExistUnFold = true;
        m_PreClickNum = m_CurrentClickNum;


      
    }




    private void GameObjectPositioAnim(GameObject go, Vector3 reginPosition, Vector3 targetPosition)
    {
        //m_IsAnimFinish = false;
        TweenPosition ta = go.GetComponent<TweenPosition>();
        if (ta == null)
        {
            ta = go.AddComponent<TweenPosition>();
        }
        ta.ResetToBeginning();
        ta.from = reginPosition;
        ta.to = targetPosition;
        ta.enabled = true;
        ta.duration = 0.0f;
        ta.PlayForward();
        //EventDelegate.Set(ta.onFinished, delegate () { UnFoldItem(); });
    }




}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值