优化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 objAnchorMin = legend.location.runtimeAnchorMin;
var objAnchorMax = legend.location.runtimeAnchorMax; var objAnchorMax = legend.location.runtimeAnchorMax;
var objPivot = legend.location.runtimePivot; var objPivot = legend.location.runtimePivot;
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta, i);
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta);
var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta); var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta);
var contentObj = ChartHelper.AddObject("content", btnObj.transform, anchorMin, anchorMax, pivot, sizeDelta); var contentObj = ChartHelper.AddObject("content", btnObj.transform, anchorMin, anchorMax, pivot, sizeDelta);
var img = ChartHelper.GetOrAddComponent<Image>(btnObj); var img = ChartHelper.GetOrAddComponent<Image>(btnObj);

View File

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

View File

@@ -108,7 +108,6 @@ namespace XCharts
if (go != null) if (go != null)
{ {
GameObject.DestroyImmediate(go.gameObject); GameObject.DestroyImmediate(go.gameObject);
//GameObject.Destroy(go.gameObject);
} }
} }
} }
@@ -140,7 +139,7 @@ namespace XCharts
} }
public static GameObject AddObject(string name, Transform parent, Vector2 anchorMin, 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; GameObject obj;
if (parent.Find(name)) if (parent.Find(name))
@@ -150,6 +149,12 @@ namespace XCharts
obj.transform.localPosition = Vector3.zero; obj.transform.localPosition = Vector3.zero;
obj.transform.localScale = Vector3.one; 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 else
{ {
obj = new GameObject(); obj = new GameObject();

View File

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