From 76f640f64de401aabb2e255aa6803a31c9457eff Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Fri, 17 Dec 2021 21:27:14 +0800 Subject: [PATCH] Fixed markline label refresh when serie hide #178 --- Assets/XCharts/CHANGELOG-EN.md | 1 + Assets/XCharts/CHANGELOG.md | 1 + Assets/XCharts/Runtime/Component/Sub/MarkLine.cs | 13 +++++++------ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Assets/XCharts/CHANGELOG-EN.md b/Assets/XCharts/CHANGELOG-EN.md index 21d43a9c..48204e00 100644 --- a/Assets/XCharts/CHANGELOG-EN.md +++ b/Assets/XCharts/CHANGELOG-EN.md @@ -41,6 +41,7 @@ ## branch-2.0 +* (2021.12.17) Fixed `MarkLine` does not auto refresh label active when serie hide #178 * (2021.12.10) Improved `Radar`'s `AxisLine` and `SplitLine` to be controlled separately * (2021.12.08) Fixed y axis does not refresh when serie hidden * (2021.12.04) Added `Symbol` new types: `EmptyRect`, `EmptyTriangle`, `EmptyDiamond` diff --git a/Assets/XCharts/CHANGELOG.md b/Assets/XCharts/CHANGELOG.md index e38c7a4f..ca4743d1 100644 --- a/Assets/XCharts/CHANGELOG.md +++ b/Assets/XCharts/CHANGELOG.md @@ -41,6 +41,7 @@ ## branch-2.0 +* (2021.12.17) 修复`MarkLine`在运行时`Label`不自动刷新显示隐藏的问题 #178 * (2021.12.10) 完善`Radar`的`AxisLine`和`SplitLine`可单独控制 * (2021.12.08) 修复`Serie`隐藏后`Y`轴最大值不刷新的问题 * (2021.12.04) 增加`Symbol`新类型:`EmptyRect`,`EmptyTriangle`,`EmptyDiamond` diff --git a/Assets/XCharts/Runtime/Component/Sub/MarkLine.cs b/Assets/XCharts/Runtime/Component/Sub/MarkLine.cs index f2f270d3..5d433050 100644 --- a/Assets/XCharts/Runtime/Component/Sub/MarkLine.cs +++ b/Assets/XCharts/Runtime/Component/Sub/MarkLine.cs @@ -309,15 +309,16 @@ namespace XCharts public void Update() { - if (m_RefreshLabel) + foreach (var serie in chart.series.list) { - m_RefreshLabel = false; - foreach (var serie in chart.series.list) + var show = serie.show && serie.markLine.show; + foreach (var data in serie.markLine.data) { - if (!serie.show || !serie.markLine.show) continue; - foreach (var data in serie.markLine.data) + if (data.runtimeLabel != null) { - if (data.runtimeLabel != null) + if (data.runtimeLabel.gameObject.activeSelf != show) + data.runtimeLabel.gameObject.SetActive(show); + if (show) { data.runtimeLabel.SetPosition(MarkLineHelper.GetLabelPosition(data)); data.runtimeLabel.SetText(MarkLineHelper.GetFormatterContent(serie, data));