mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-27 19:50:10 +00:00
增加SerieLabel的autoOffset参数设置是否自动判断上下偏移
This commit is contained in:
@@ -102,6 +102,7 @@ namespace XCharts
|
||||
[SerializeField] private float m_BorderWidth = 0.5f;
|
||||
[SerializeField] private Color m_BorderColor = Color.grey;
|
||||
[SerializeField] private string m_NumericFormatter = "";
|
||||
[SerializeField] private bool m_AutoOffset = false;
|
||||
|
||||
/// <summary>
|
||||
/// Whether the label is showed.
|
||||
@@ -332,5 +333,13 @@ namespace XCharts
|
||||
get { return m_NumericFormatter; }
|
||||
set { if (PropertyUtility.SetClass(ref m_NumericFormatter, value)) SetComponentDirty(); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 是否开启自动偏移。当开启时,Y的偏移会自动判断曲线的开口来决定向上还是向下偏移。
|
||||
/// </summary>
|
||||
public bool autoOffset
|
||||
{
|
||||
get { return m_AutoOffset; }
|
||||
set { if (PropertyUtility.SetStruct(ref m_AutoOffset, value)) SetAllDirty(); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -816,7 +816,8 @@ namespace XCharts
|
||||
if (serieData == null || serieData.labelObject == null) return;
|
||||
var serieLabel = SerieHelper.GetSerieLabel(serie, serieData);
|
||||
if (!serieLabel.show) return;
|
||||
var invert = serie.type == SerieType.Line
|
||||
var invert = serieLabel.autoOffset
|
||||
&& serie.type == SerieType.Line
|
||||
&& SerieHelper.IsDownPoint(serie, serieData.index)
|
||||
&& !serie.areaStyle.show;
|
||||
var centerPos = serieData.labelPosition + serieLabel.offset * (invert ? -1 : 1);
|
||||
|
||||
@@ -1511,7 +1511,10 @@ namespace XCharts
|
||||
content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, serieLabel);
|
||||
}
|
||||
serieData.SetLabelActive(value != 0 && serieData.labelPosition != Vector3.zero);
|
||||
var invert = serie.type == SerieType.Line && SerieHelper.IsDownPoint(serie, j) && !serie.areaStyle.show;
|
||||
var invert = serieLabel.autoOffset
|
||||
&& serie.type == SerieType.Line
|
||||
&& SerieHelper.IsDownPoint(serie, j)
|
||||
&& !serie.areaStyle.show;
|
||||
serieData.labelObject.SetLabelPosition(invert ? -serieLabel.offset : serieLabel.offset);
|
||||
if (serieData.labelObject.SetText(content)) RefreshChart();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user