[enhancement][line] line support end label

This commit is contained in:
monitor1394
2022-04-14 21:32:44 +08:00
parent 84cf39df4d
commit 80e4475f65
12 changed files with 181 additions and 21 deletions

View File

@@ -60,5 +60,39 @@ namespace XCharts.Runtime
}
}
}
public override void RefreshEndLabelInternal()
{
base.RefreshEndLabelInternal();
if (m_SerieGrid == null) return;
if (!serie.animation.IsFinish()) return;
var endLabelList = m_SerieGrid.context.endLabelList;
if (endLabelList.Count <= 1) return;
endLabelList.Sort(delegate (ChartLabel a, ChartLabel b)
{
return b.transform.position.y.CompareTo(a.transform.position.y);
});
var lastY = float.NaN;
for (int i = 0; i < endLabelList.Count; i++)
{
var label = endLabelList[i];
if (!label.isAnimationEnd) continue;
var labelPosition = label.transform.localPosition;
if (float.IsNaN(lastY))
{
lastY = labelPosition.y;
}
else
{
var labelHeight = label.GetLabelHeight();
if (labelPosition.y + labelHeight > lastY)
{
label.SetPosition(new Vector3(labelPosition.x, lastY - labelHeight, labelPosition.z));
}
lastY = label.transform.localPosition.y;
}
}
}
}
}