From 9079bedd9d19b9f38653545a6ef458e762b58c7a Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Fri, 13 Mar 2020 08:37:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D`LineChart`=E7=9A=84`label`?= =?UTF-8?q?=E5=81=8F=E7=A7=BB=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + Runtime/Internal/BaseChart.cs | 5 ++++- Runtime/Internal/CoordinateChart.cs | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3d8134e..7e00f1b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # 更新日志 +* (2020.03.13) 修复`LineChart`的`label`偏移显示异常的问题 * (2020.03.11) 发布`v1.3.0`版本 * (2020.03.11) 优化`LineChart`的`label`偏移显示 * (2020.03.11) 优化清空并重新添加数据后的自动刷新问题 diff --git a/Runtime/Internal/BaseChart.cs b/Runtime/Internal/BaseChart.cs index a0316657..593fba5a 100644 --- a/Runtime/Internal/BaseChart.cs +++ b/Runtime/Internal/BaseChart.cs @@ -821,7 +821,10 @@ namespace XCharts var labelHalfWid = serieData.GetLabelWidth() / 2; var labelHalfHig = serieData.GetLabelHeight() / 2; var serieLabel = serieData.GetSerieLabel(serie.label); - var centerPos = serieData.labelPosition + serieLabel.offset; + var invert = serie.type == SerieType.Line + && SerieHelper.IsDownPoint(serie, serieData.index) + && !serie.areaStyle.show; + var centerPos = serieData.labelPosition + serieLabel.offset * (invert ? -1 : 1); var p1 = new Vector3(centerPos.x - labelHalfWid, centerPos.y + labelHalfHig); var p2 = new Vector3(centerPos.x + labelHalfWid, centerPos.y + labelHalfHig); var p3 = new Vector3(centerPos.x + labelHalfWid, centerPos.y - labelHalfHig); diff --git a/Runtime/Internal/CoordinateChart.cs b/Runtime/Internal/CoordinateChart.cs index eceb08ee..8c02ff5d 100644 --- a/Runtime/Internal/CoordinateChart.cs +++ b/Runtime/Internal/CoordinateChart.cs @@ -1447,6 +1447,7 @@ namespace XCharts for (int j = 0; j < serie.data.Count; j++) { var serieData = serie.data[j]; + serieData.index = j; if ((serie.label.show || serieData.iconStyle.show)) { @@ -1527,8 +1528,8 @@ namespace XCharts content = serie.label.GetFormatterContent(serie.name, serieData.name, value, total); } serieData.SetLabelActive(value != 0 && serieData.labelPosition != Vector3.zero); - var down = serie.type == SerieType.Line && SerieHelper.IsDownPoint(serie, j); - serieData.SetLabelPosition(down ? -serie.label.offset : serie.label.offset); + var invert = serie.type == SerieType.Line && SerieHelper.IsDownPoint(serie, j) && !serie.areaStyle.show; + serieData.SetLabelPosition(invert ? -serie.label.offset : serie.label.offset); if (serieData.SetLabelText(content)) RefreshChart(); } else