修复Label在初始化时会堆积的问题

This commit is contained in:
monitor1394
2024-07-12 19:53:30 +08:00
parent 6d41daa678
commit 99d824e3a0
3 changed files with 19 additions and 4 deletions

View File

@@ -86,7 +86,7 @@ namespace XCharts.Runtime
content, Color.clear, TextAnchor.MiddleCenter);
var pos = MarkLineHelper.GetLabelPosition(data);
label.SetIconActive(false);
label.SetActive(data.label.show && data.runtimeInGrid);
label.SetActive(data.label.show && data.runtimeInGrid, true);
label.SetPosition(pos);
data.runtimeLabel = label;
};

View File

@@ -22,7 +22,6 @@ namespace XCharts.Runtime
private Align m_Align = Align.Left;
private Image m_IconImage;
private bool m_Active = true;
private bool m_WakeActive = true;
public Image icon
{
@@ -57,7 +56,7 @@ namespace XCharts.Runtime
protected override void Awake()
{
raycastTarget = false;
SetActive(m_WakeActive, true);
m_Active = ChartHelper.IsActiveByScale(gameObject);
}
public void SetTextPadding(TextPadding padding)
@@ -203,7 +202,6 @@ namespace XCharts.Runtime
public void SetActive(bool flag, bool force = false)
{
m_WakeActive = flag;
if (m_Active == flag && !force) return;
if (ChartHelper.SetActive(gameObject, flag))
{

View File

@@ -41,6 +41,23 @@ namespace XCharts.Runtime
return s_Builder.ToString();
}
public static bool IsActiveByScale(GameObject gameObject)
{
if (gameObject == null) return false;
return IsActiveByScale(gameObject.transform);
}
public static bool IsActiveByScale(Image image)
{
if (image == null) return false;
return IsActiveByScale(image.gameObject);
}
public static bool IsActiveByScale(Transform transform)
{
return transform.localScale != Vector3.zero;
}
public static bool SetActive(GameObject gameObject, bool active)
{
if (gameObject == null) return false;