[improve][MarkLine] improve label

This commit is contained in:
monitor1394
2022-08-25 08:37:17 +08:00
parent 9e07fa1db3
commit 34dd3d1c4e
4 changed files with 14 additions and 7 deletions

View File

@@ -58,6 +58,9 @@
## master
* (2022.08.24) 修复`ScatterChart``label`不刷新的问题
* (2022.08.24) 修复`MarkLine``label`某些情况下显示异常的问题
## v3.2.0
### 版本要点

View File

@@ -35,8 +35,9 @@ namespace XCharts.Runtime
{
if (data.runtimeLabel != null)
{
data.runtimeLabel.SetActive(data.label.show);
data.runtimeLabel.SetPosition(MarkLineHelper.GetLabelPosition(data));
var pos = MarkLineHelper.GetLabelPosition(data);
data.runtimeLabel.SetActive(data.label.show && pos != Vector3.zero);
data.runtimeLabel.SetPosition(pos);
data.runtimeLabel.SetText(MarkLineHelper.GetFormatterContent(serie, data));
}
}
@@ -76,10 +77,10 @@ namespace XCharts.Runtime
var content = MarkLineHelper.GetFormatterContent(serie, data);
var label = ChartHelper.AddChartLabel(textName, m_MarkLineLabelRoot.transform, data.label, chart.theme.axis,
content, Color.clear, TextAnchor.MiddleCenter);
var pos = MarkLineHelper.GetLabelPosition(data);
label.SetIconActive(false);
label.SetActive(data.label.show);
label.SetPosition(MarkLineHelper.GetLabelPosition(data));
label.SetActive(data.label.show && pos != Vector3.zero);
label.SetPosition(pos);
data.runtimeLabel = label;
};
data.refreshComponent();
@@ -202,8 +203,7 @@ namespace XCharts.Runtime
for (int i = 0; i < markLine.data.Count; i++)
{
var data = markLine.data[i];
// data.index = i;
data.index = markLine.index;
data.index = i;
if (data.group == 0) continue;
if (!m_TempGroupData.ContainsKey(data.group))
{

View File

@@ -34,13 +34,16 @@ namespace XCharts.Runtime
switch (data.label.position)
{
case LabelStyle.Position.Start:
if (data.runtimeStartPosition == Vector3.zero) return Vector3.zero;
if (horizontal) return data.runtimeStartPosition + data.label.offset + labelWidth / 2 * Vector3.left;
else return data.runtimeStartPosition + data.label.offset + labelHeight / 2 * Vector3.down;
case LabelStyle.Position.Middle:
if (data.runtimeCurrentEndPosition == Vector3.zero) return Vector3.zero;
var center = (data.runtimeStartPosition + data.runtimeCurrentEndPosition) / 2;
if (horizontal) return center + data.label.offset + labelHeight / 2 * Vector3.up;
else return center + data.label.offset + labelWidth / 2 * Vector3.right;
default:
if (data.runtimeCurrentEndPosition == Vector3.zero) return Vector3.zero;
if (horizontal) return data.runtimeCurrentEndPosition + data.label.offset + labelWidth / 2 * Vector3.right;
else return data.runtimeCurrentEndPosition + data.label.offset + labelHeight / 2 * Vector3.up;
}

View File

@@ -12,6 +12,7 @@ namespace XCharts.Runtime
public override void Update()
{
base.Update();
UpdateSerieContext();
}