diff --git a/Assets/XCharts/Runtime/Component/Main/Serie.cs b/Assets/XCharts/Runtime/Component/Main/Serie.cs index fa9f9cd5..1abb89b7 100644 --- a/Assets/XCharts/Runtime/Component/Main/Serie.cs +++ b/Assets/XCharts/Runtime/Component/Main/Serie.cs @@ -461,6 +461,7 @@ namespace XCharts /// 饼图的数据项之和 /// public float runtimePieDataTotal { get; internal set; } + internal int runtimeLastCheckDataCount { get; set; } internal List GetUpSmoothList(int dataIndex, int size = 100) { diff --git a/Assets/XCharts/Runtime/Internal/BaseChart.cs b/Assets/XCharts/Runtime/Internal/BaseChart.cs index d60234e4..0d4db010 100644 --- a/Assets/XCharts/Runtime/Internal/BaseChart.cs +++ b/Assets/XCharts/Runtime/Internal/BaseChart.cs @@ -289,7 +289,6 @@ namespace XCharts { var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin, chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight)); - //ChartHelper.DestroyAllChildren(labelObject.transform); SerieLabelPool.ReleaseAll(labelObject.transform); int count = 0; for (int i = 0; i < m_Series.Count; i++) @@ -484,6 +483,14 @@ namespace XCharts protected void CheckRefreshLabel() { + foreach (var serie in m_Series.list) + { + if (serie.label.show && serie.runtimeLastCheckDataCount != serie.dataCount) + { + m_ReinitLabel = true; + serie.runtimeLastCheckDataCount = serie.dataCount; + } + } if (m_ReinitLabel) { m_ReinitLabel = false; diff --git a/Assets/XCharts/Runtime/PieChart.cs b/Assets/XCharts/Runtime/PieChart.cs index a0226d6d..3c700a5e 100644 --- a/Assets/XCharts/Runtime/PieChart.cs +++ b/Assets/XCharts/Runtime/PieChart.cs @@ -387,6 +387,7 @@ namespace XCharts protected void UpdateLabelPostion(Serie serie, SerieData serieData) { + if (serieData.labelText == null) return; var currAngle = serieData.runtimePieHalfAngle; var currRad = currAngle * Mathf.Deg2Rad; var offsetRadius = serieData.runtimePieOffsetRadius;