From b22288eac476292c69d72c3551bcf769a24f596f Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Fri, 12 Jul 2024 21:22:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96`Label`=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Runtime/Component/Axis/AxisHandler.cs | 18 +++++++++--------- .../Axis/RadiusAxis/RadiusAxisHandler.cs | 2 +- Runtime/Component/Comment/CommentHander.cs | 2 +- Runtime/Component/Legend/LegendHelper.cs | 2 +- Runtime/Component/Mark/MarkAreaHandler.cs | 2 +- Runtime/Component/Radar/RadarCoordHandler.cs | 2 +- Runtime/Component/Tooltip/TooltipHandler.cs | 2 +- Runtime/Internal/Pools/SerieLabelPool.cs | 2 +- Runtime/Internal/Utilities/ChartHelper.cs | 2 +- Runtime/Serie/SerieHandler.cs | 8 ++++---- 11 files changed, 22 insertions(+), 21 deletions(-) diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 8f280127..e3551017 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -75,6 +75,7 @@ slug: /changelog ## master +* (2024.07.12) 优化`Label`显示体验 * (2024.07.06) 修复`Chart`在动态创建时背景没有自适应的问题 (#323) ## v3.11.1 diff --git a/Runtime/Component/Axis/AxisHandler.cs b/Runtime/Component/Axis/AxisHandler.cs index ef90913b..cb6dac93 100644 --- a/Runtime/Component/Axis/AxisHandler.cs +++ b/Runtime/Component/Axis/AxisHandler.cs @@ -455,7 +455,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.context.start + offset); break; @@ -463,7 +463,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition((axis.context.start + axis.context.end) / 2 + offset); break; @@ -471,7 +471,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.context.end + offset); break; } @@ -574,7 +574,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleRight); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.position == Axis.AxisPosition.Top ? new Vector2(zeroPos.x - offset.x, axisStartY + relativedLength + offset.y + axis.offset) : new Vector2(zeroPos.x - offset.x, posY + offset.y)); @@ -584,7 +584,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.position == Axis.AxisPosition.Top ? new Vector2(axisStartX + axisLength / 2 + offset.x, axisStartY + relativedLength - offset.y + axis.offset) : new Vector2(axisStartX + axisLength / 2 + offset.x, posY + offset.y)); @@ -594,7 +594,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleLeft); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.position == Axis.AxisPosition.Top ? new Vector2(axisStartX + axisLength + offset.x, axisStartY + relativedLength + offset.y + axis.offset) : new Vector2(axisStartX + axisLength + offset.x, posY + offset.y)); @@ -611,7 +611,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.position == Axis.AxisPosition.Right ? new Vector2(axisStartX + relativedLength + offset.x + axis.offset, axisStartY - offset.y) : new Vector2(posX + offset.x, axisStartY - offset.y)); @@ -621,7 +621,7 @@ namespace XCharts label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.position == Axis.AxisPosition.Right ? new Vector2(axisStartX + relativedLength - offset.x + axis.offset, axisStartY + axisLength / 2 + offset.y) : new Vector2(posX + offset.x, axisStartY + axisLength / 2 + offset.y)); @@ -631,7 +631,7 @@ namespace XCharts //LabelStyle.Position label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); - label.SetActive(axis.axisName.labelStyle.show); + label.SetActive(axis.axisName.labelStyle.show, true); label.SetPosition(axis.position == Axis.AxisPosition.Right ? new Vector2(axisStartX + relativedLength + offset.x + axis.offset, axisStartY + axisLength + offset.y) : new Vector2(posX + offset.x, axisStartY + axisLength + offset.y)); diff --git a/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs b/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs index 736b9da4..5a84d71f 100644 --- a/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs +++ b/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs @@ -124,7 +124,7 @@ namespace XCharts.Runtime label.text.SetAlignment(textStyle.GetAlignment(TextAnchor.MiddleCenter)); label.SetText(labelName); label.SetPosition(GetLabelPosition(polar, axis, angleAxis.context.startAngle, totalWidth)); - label.SetActive(true); + label.SetActive(true, true); label.SetTextActive(true); axis.context.labelObjectList.Add(label); diff --git a/Runtime/Component/Comment/CommentHander.cs b/Runtime/Component/Comment/CommentHander.cs index 4e515f2e..1fc580e4 100644 --- a/Runtime/Component/Comment/CommentHander.cs +++ b/Runtime/Component/Comment/CommentHander.cs @@ -34,7 +34,7 @@ namespace XCharts.Runtime var labelPos = chart.chartPosition + item.location.GetPosition(chart.chartWidth, chart.chartHeight); var label = ChartHelper.AddChartLabel(s_CommentObjectName + i, commentObj.transform, labelStyle, chart.theme.common, GetContent(item), Color.clear, TextAnchor.MiddleCenter); - label.SetActive(comment.show && item.show); + label.SetActive(comment.show && item.show, true); label.SetPosition(labelPos); label.text.SetLocalPosition(labelStyle.offset); } diff --git a/Runtime/Component/Legend/LegendHelper.cs b/Runtime/Component/Legend/LegendHelper.cs index 3df72232..1ee362e3 100644 --- a/Runtime/Component/Legend/LegendHelper.cs +++ b/Runtime/Component/Legend/LegendHelper.cs @@ -58,7 +58,7 @@ namespace XCharts.Runtime var label = ChartHelper.AddChartLabel("content", btnObj.transform, legend.labelStyle, theme.legend, content, contentColor, TextAnchor.MiddleLeft); - label.SetActive(true); + label.SetActive(true, true); var item = new LegendItem(); item.index = i; diff --git a/Runtime/Component/Mark/MarkAreaHandler.cs b/Runtime/Component/Mark/MarkAreaHandler.cs index f4329a68..98b9f6c9 100644 --- a/Runtime/Component/Mark/MarkAreaHandler.cs +++ b/Runtime/Component/Mark/MarkAreaHandler.cs @@ -45,7 +45,7 @@ namespace XCharts.Runtime var label = ChartHelper.AddChartLabel("label", m_MarkLineLabelRoot.transform, markArea.label, chart.theme.axis, component.text, Color.clear, TextAnchor.MiddleCenter); UpdateRuntimeData(component); - label.SetActive(markArea.label.show); + label.SetActive(markArea.label.show, true); label.SetPosition(component.runtimeLabelPosition); label.SetText(component.text); markArea.runtimeLabel = label; diff --git a/Runtime/Component/Radar/RadarCoordHandler.cs b/Runtime/Component/Radar/RadarCoordHandler.cs index 9301a0b3..15d3740b 100644 --- a/Runtime/Component/Radar/RadarCoordHandler.cs +++ b/Runtime/Component/Radar/RadarCoordHandler.cs @@ -53,7 +53,7 @@ namespace XCharts.Runtime var label = ChartHelper.AddChartLabel(objName, radarObject.transform, radar.axisName.labelStyle, chart.theme.common, radar.GetFormatterIndicatorContent(i), Color.clear, TextAnchor.MiddleCenter); - label.SetActive(radar.axisName.show && radar.indicator && radar.axisName.labelStyle.show); + label.SetActive(radar.axisName.show && radar.indicator && radar.axisName.labelStyle.show, true); AxisHelper.AdjustCircleLabelPos(label, pos, radar.context.center, txtHig, radar.axisName.labelStyle.offset); } chart.RefreshBasePainter(); diff --git a/Runtime/Component/Tooltip/TooltipHandler.cs b/Runtime/Component/Tooltip/TooltipHandler.cs index 9636687c..1d28d5bc 100644 --- a/Runtime/Component/Tooltip/TooltipHandler.cs +++ b/Runtime/Component/Tooltip/TooltipHandler.cs @@ -255,7 +255,7 @@ namespace XCharts.Runtime { if (label == null) return; if (double.IsNaN(axis.context.pointerValue)) return; - label.SetActive(true); + label.SetActive(true, true); label.SetTextActive(true); label.SetPosition(axis.context.pointerLabelPosition + axis.indicatorLabel.offset); diff --git a/Runtime/Internal/Pools/SerieLabelPool.cs b/Runtime/Internal/Pools/SerieLabelPool.cs index 321d8942..b4e1aeb2 100644 --- a/Runtime/Internal/Pools/SerieLabelPool.cs +++ b/Runtime/Internal/Pools/SerieLabelPool.cs @@ -67,7 +67,7 @@ namespace XCharts.Runtime { var label = ChartHelper.AddChartLabel(name, parent, labelStyle, theme.common, "", color, TextAnchor.MiddleCenter); - label.SetActive(labelStyle.show); + label.SetActive(labelStyle.show, true); return label.gameObject; } } diff --git a/Runtime/Internal/Utilities/ChartHelper.cs b/Runtime/Internal/Utilities/ChartHelper.cs index 1bfdaba5..fb67ad55 100644 --- a/Runtime/Internal/Utilities/ChartHelper.cs +++ b/Runtime/Internal/Utilities/ChartHelper.cs @@ -555,7 +555,7 @@ namespace XCharts.Runtime { var label = ChartHelper.AddChartLabel(name, parent, labelStyle, theme.tooltip, "", Color.clear, alignment); - label.SetActive(tooltip.show && labelStyle.show); + label.SetActive(tooltip.show && labelStyle.show, true); return label; } diff --git a/Runtime/Serie/SerieHandler.cs b/Runtime/Serie/SerieHandler.cs index e6306bcc..52b57a1a 100644 --- a/Runtime/Serie/SerieHandler.cs +++ b/Runtime/Serie/SerieHandler.cs @@ -368,7 +368,7 @@ namespace XCharts.Runtime var textName = string.Format("{0}_{1}_{2}_{3}", s_SerieLabelObjectName, serie.index, serieData.index, i); var label = ChartHelper.AddChartLabel(textName, serieLabelRoot.transform, serieLabel, chart.theme.common, "", dataAutoColor, TextAnchor.MiddleCenter); - label.SetActive(false); + label.SetActive(false, true); serieData.context.dataLabels.Add(label); } } @@ -377,7 +377,7 @@ namespace XCharts.Runtime var textName = ChartCached.GetSerieLabelName(s_SerieLabelObjectName, serie.index, serieData.index); var label = ChartHelper.AddChartLabel(textName, serieLabelRoot.transform, serieLabel, chart.theme.common, "", dataAutoColor, TextAnchor.MiddleCenter); - label.SetActive(false); + label.SetActive(false, true); serieData.labelObject = label; } @@ -441,7 +441,7 @@ namespace XCharts.Runtime var label = ChartHelper.AddChartLabel("title_" + 0, serieTitleRoot.transform, titleStyle, chart.theme.common, content, color, TextAnchor.MiddleCenter); serie.context.titleObject = label; - label.SetActive(titleStyle.show); + label.SetActive(titleStyle.show, true); var labelPosition = GetSerieDataTitlePosition(null, titleStyle); var offset = titleStyle.GetOffset(serie.context.insideRadius); label.SetPosition(labelPosition + offset); @@ -468,7 +468,7 @@ namespace XCharts.Runtime var label = ChartHelper.AddChartLabel("title_" + i, serieTitleRoot.transform, titleStyle, chart.theme.common, content, color, TextAnchor.MiddleCenter); serieData.titleObject = label; - label.SetActive(titleStyle.show); + label.SetActive(titleStyle.show, true); var labelPosition = GetSerieDataTitlePosition(serieData, titleStyle); var offset = titleStyle.GetOffset(serie.context.insideRadius); label.SetPosition(labelPosition + offset);