修复Label坐标显示异常的问题

This commit is contained in:
monitor1394
2019-11-12 09:49:25 +08:00
parent abbc81df87
commit 7f9a7ecf96
2 changed files with 19 additions and 6 deletions

View File

@@ -54,12 +54,15 @@ namespace XCharts
[NonSerialized] private Legend m_CheckLegend = Legend.defaultLegend; [NonSerialized] private Legend m_CheckLegend = Legend.defaultLegend;
[NonSerialized] private float m_CheckWidth = 0; [NonSerialized] private float m_CheckWidth = 0;
[NonSerialized] private float m_CheckHeight = 0; [NonSerialized] private float m_CheckHeight = 0;
[NonSerialized] private Vector2 m_CheckMinAnchor;
[NonSerialized] private Vector2 m_CheckMaxAnchor;
[NonSerialized] private float m_CheckSerieCount = 0; [NonSerialized] private float m_CheckSerieCount = 0;
[NonSerialized] private List<string> m_CheckSerieName = new List<string>(); [NonSerialized] private List<string> m_CheckSerieName = new List<string>();
[NonSerialized] private bool m_RefreshChart = false; [NonSerialized] protected bool m_RefreshChart = false;
[NonSerialized] private bool m_RefreshLabel = false; [NonSerialized] protected bool m_RefreshLabel = false;
[NonSerialized] private bool m_ReinitLabel = false; [NonSerialized] protected bool m_ReinitLabel = false;
[NonSerialized] private bool m_CheckAnimation = false; [NonSerialized] protected bool m_CheckAnimation = false;
[NonSerialized] protected List<string> m_LegendRealShowName = new List<string>(); [NonSerialized] protected List<string> m_LegendRealShowName = new List<string>();
protected Vector2 chartAnchorMax { get { return rectTransform.anchorMax; } } protected Vector2 chartAnchorMax { get { return rectTransform.anchorMax; } }
@@ -287,8 +290,8 @@ namespace XCharts
private void InitSerieLabel() private void InitSerieLabel()
{ {
var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin, var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, Vector2.zero,
chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight)); Vector2.zero, Vector2.zero, new Vector2(chartWidth, chartHeight));
SerieLabelPool.ReleaseAll(labelObject.transform); SerieLabelPool.ReleaseAll(labelObject.transform);
int count = 0; int count = 0;
for (int i = 0; i < m_Series.Count; i++) for (int i = 0; i < m_Series.Count; i++)
@@ -358,6 +361,13 @@ namespace XCharts
{ {
SetSize(sizeDelta.x, sizeDelta.y); SetSize(sizeDelta.x, sizeDelta.y);
} }
if (m_CheckMinAnchor != rectTransform.anchorMin || m_CheckMaxAnchor != rectTransform.anchorMax)
{
m_CheckMaxAnchor = rectTransform.anchorMax;
m_CheckMinAnchor = rectTransform.anchorMin;
m_ReinitLabel = true;
}
} }
private void CheckTheme() private void CheckTheme()
@@ -523,6 +533,7 @@ namespace XCharts
InitTitle(); InitTitle();
InitLegend(); InitLegend();
InitTooltip(); InitTooltip();
InitSerieLabel();
} }
protected virtual void OnThemeChanged() protected virtual void OnThemeChanged()

View File

@@ -1348,6 +1348,7 @@ namespace XCharts
} }
break; break;
} }
m_RefreshLabel = true;
serieData.labelPosition = pos; serieData.labelPosition = pos;
if (serie.label.show) DrawLabelBackground(vh, serie, serieData); if (serie.label.show) DrawLabelBackground(vh, serie, serieData);
} }
@@ -1372,6 +1373,7 @@ namespace XCharts
if (j >= serie.dataPoints.Count) break; if (j >= serie.dataPoints.Count) break;
var serieData = serie.data[j]; var serieData = serie.data[j];
var pos = serie.dataPoints[j]; var pos = serie.dataPoints[j];
serieData.SetGameObjectPosition(serieData.labelPosition); serieData.SetGameObjectPosition(serieData.labelPosition);
serieData.UpdateIcon(); serieData.UpdateIcon();
if (serie.show && serie.label.show && serieData.canShowLabel) if (serie.show && serie.label.show && serieData.canShowLabel)