优化Legend初始化,防止出现预设下删除异常的问题

This commit is contained in:
monitor1394
2020-04-10 07:32:59 +08:00
parent b3e9e8833c
commit 90f5c1ef8a
4 changed files with 12 additions and 7 deletions

View File

@@ -46,8 +46,7 @@ namespace XCharts
var objAnchorMin = legend.location.runtimeAnchorMin;
var objAnchorMax = legend.location.runtimeAnchorMax;
var objPivot = legend.location.runtimePivot;
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta);
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta, i);
var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta);
var contentObj = ChartHelper.AddObject("content", btnObj.transform, anchorMin, anchorMax, pivot, sizeDelta);
var img = ChartHelper.GetOrAddComponent<Image>(btnObj);

View File

@@ -291,7 +291,7 @@ namespace XCharts
totalLegend++;
}
m_Legend.RemoveButton();
ChartHelper.DestroyAllChildren(legendObject.transform);
ChartHelper.HideAllObject(legendObject);
if (!m_Legend.show) return;
for (int i = 0; i < datas.Count; i++)
{

View File

@@ -108,7 +108,6 @@ namespace XCharts
if (go != null)
{
GameObject.DestroyImmediate(go.gameObject);
//GameObject.Destroy(go.gameObject);
}
}
}
@@ -140,7 +139,7 @@ namespace XCharts
}
public static GameObject AddObject(string name, Transform parent, Vector2 anchorMin,
Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta)
Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta, int replaceIndex = -1)
{
GameObject obj;
if (parent.Find(name))
@@ -150,6 +149,12 @@ namespace XCharts
obj.transform.localPosition = Vector3.zero;
obj.transform.localScale = Vector3.one;
}
else if (replaceIndex >= 0 && replaceIndex < parent.childCount)
{
obj = parent.GetChild(replaceIndex).gameObject;
if (!obj.name.Equals(name)) obj.name = name;
SetActive(obj, true);
}
else
{
obj = new GameObject();

View File

@@ -108,7 +108,7 @@ namespace XChartsDemo
var btnPanel = transform.Find("chart_list");
m_BtnClone = transform.Find("btn_clone").gameObject;
m_BtnClone.SetActive(false);
ChartHelper.DestroyAllChildren(btnPanel);
ChartHelper.HideAllObject(btnPanel);
foreach (var module in m_ChartModule)
{
var btnName = "btn_" + module.name;
@@ -116,7 +116,8 @@ namespace XChartsDemo
if (btnPanel.Find(btnName))
{
btn = btnPanel.Find(btnName).gameObject;
btn.SetActive(true);
btn.name = btnName;
ChartHelper.SetActive(btn, true);
}
else
{