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(); });
}
}
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(); });
}
}