mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-23 01:10:08 +00:00
修复PieChart的Label无法自动更新的问题
This commit is contained in:
@@ -639,6 +639,19 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateDataName(int index, string name)
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < m_Data.Count)
|
||||||
|
{
|
||||||
|
var serieData = m_Data[index];
|
||||||
|
serieData.name = name;
|
||||||
|
if (serieData.label != null)
|
||||||
|
{
|
||||||
|
serieData.label.text = name == null ? "" : name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 清除所有数据的高亮标志
|
/// 清除所有数据的高亮标志
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -332,6 +332,24 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateDataName(string serieName, string dataName, int dataIndex = 0)
|
||||||
|
{
|
||||||
|
var serie = GetSerie(serieName);
|
||||||
|
if (serie != null)
|
||||||
|
{
|
||||||
|
serie.UpdateDataName(dataIndex, dataName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateDataName(int serieIndex, string dataName, int dataIndex = 0)
|
||||||
|
{
|
||||||
|
var serie = GetSerie(serieIndex);
|
||||||
|
if (serie != null)
|
||||||
|
{
|
||||||
|
serie.UpdateDataName(dataIndex, dataName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新指定系列的维度Y数据
|
/// 更新指定系列的维度Y数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ namespace XCharts
|
|||||||
[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] private bool m_RefreshChart = false;
|
||||||
[NonSerialized] private bool m_RefreshLabel = false;
|
[NonSerialized] private bool m_RefreshLabel = false;
|
||||||
|
[NonSerialized] private bool m_ReinitLabel = false;
|
||||||
|
|
||||||
protected Vector2 chartAnchorMax { get { return rectTransform.anchorMax; } }
|
protected Vector2 chartAnchorMax { get { return rectTransform.anchorMax; } }
|
||||||
protected Vector2 chartAnchorMin { get { return rectTransform.anchorMin; } }
|
protected Vector2 chartAnchorMin { get { return rectTransform.anchorMin; } }
|
||||||
@@ -199,7 +200,6 @@ namespace XCharts
|
|||||||
private void InitLegend()
|
private void InitLegend()
|
||||||
{
|
{
|
||||||
m_Legend.OnChanged();
|
m_Legend.OnChanged();
|
||||||
ChartHelper.HideAllObject(transform, s_LegendObjectName);
|
|
||||||
TextAnchor anchor = m_Legend.location.textAnchor;
|
TextAnchor anchor = m_Legend.location.textAnchor;
|
||||||
Vector2 anchorMin = m_Legend.location.anchorMin;
|
Vector2 anchorMin = m_Legend.location.anchorMin;
|
||||||
Vector2 anchorMax = m_Legend.location.anchorMax;
|
Vector2 anchorMax = m_Legend.location.anchorMax;
|
||||||
@@ -208,8 +208,8 @@ namespace XCharts
|
|||||||
var legendObject = ChartHelper.AddObject(s_LegendObjectName, transform, anchorMin, anchorMax,
|
var legendObject = ChartHelper.AddObject(s_LegendObjectName, transform, anchorMin, anchorMax,
|
||||||
pivot, new Vector2(chartWidth, chartHeight));
|
pivot, new Vector2(chartWidth, chartHeight));
|
||||||
legendObject.transform.localPosition = m_Legend.location.GetPosition(chartWidth, chartHeight);
|
legendObject.transform.localPosition = m_Legend.location.GetPosition(chartWidth, chartHeight);
|
||||||
ChartHelper.HideAllObject(legendObject, s_LegendObjectName);
|
ChartHelper.DestoryAllChilds(legendObject.transform);
|
||||||
|
if (!m_Legend.show) return;
|
||||||
var serieNameList = m_Series.GetSerieNameList();
|
var serieNameList = m_Series.GetSerieNameList();
|
||||||
List<string> datas;
|
List<string> datas;
|
||||||
if (m_Legend.data.Count > 0)
|
if (m_Legend.data.Count > 0)
|
||||||
@@ -287,9 +287,9 @@ namespace XCharts
|
|||||||
|
|
||||||
private void InitSerieLabel()
|
private void InitSerieLabel()
|
||||||
{
|
{
|
||||||
ChartHelper.HideAllObject(transform, s_SerieLabelObjectName);
|
|
||||||
var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin,
|
var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin,
|
||||||
chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight));
|
chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight));
|
||||||
|
ChartHelper.DestoryAllChilds(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++)
|
||||||
{
|
{
|
||||||
@@ -308,7 +308,7 @@ namespace XCharts
|
|||||||
m_ThemeInfo.font, color, TextAnchor.MiddleCenter, anchorMin, anchorMax, pivot,
|
m_ThemeInfo.font, color, TextAnchor.MiddleCenter, anchorMin, anchorMax, pivot,
|
||||||
new Vector2(50, serie.label.fontSize), serie.label.fontSize);
|
new Vector2(50, serie.label.fontSize), serie.label.fontSize);
|
||||||
serieData.label.text = serieData.name;
|
serieData.label.text = serieData.name;
|
||||||
serieData.label.gameObject.SetActive(true);
|
ChartHelper.SetActive(serieData.label.gameObject, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -445,6 +445,11 @@ namespace XCharts
|
|||||||
|
|
||||||
protected void CheckRefreshLabel()
|
protected void CheckRefreshLabel()
|
||||||
{
|
{
|
||||||
|
if (m_ReinitLabel)
|
||||||
|
{
|
||||||
|
m_ReinitLabel = false;
|
||||||
|
InitSerieLabel();
|
||||||
|
}
|
||||||
if (m_RefreshLabel)
|
if (m_RefreshLabel)
|
||||||
{
|
{
|
||||||
m_RefreshLabel = false;
|
m_RefreshLabel = false;
|
||||||
|
|||||||
@@ -168,7 +168,11 @@ namespace XCharts
|
|||||||
public virtual bool AddData(int serieIndex, float data, string dataName = null)
|
public virtual bool AddData(int serieIndex, float data, string dataName = null)
|
||||||
{
|
{
|
||||||
var success = m_Series.AddData(serieIndex, data, dataName, m_MaxCacheDataNumber);
|
var success = m_Series.AddData(serieIndex, data, dataName, m_MaxCacheDataNumber);
|
||||||
if (success) RefreshChart();
|
if (success)
|
||||||
|
{
|
||||||
|
RefreshChart();
|
||||||
|
ReinitChartLabel();
|
||||||
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,7 +187,11 @@ namespace XCharts
|
|||||||
public virtual bool AddData(string serieName, List<float> multidimensionalData, string dataName = null)
|
public virtual bool AddData(string serieName, List<float> multidimensionalData, string dataName = null)
|
||||||
{
|
{
|
||||||
var success = m_Series.AddData(serieName, multidimensionalData, dataName, m_MaxCacheDataNumber);
|
var success = m_Series.AddData(serieName, multidimensionalData, dataName, m_MaxCacheDataNumber);
|
||||||
if (success) RefreshChart();
|
if (success)
|
||||||
|
{
|
||||||
|
RefreshChart();
|
||||||
|
ReinitChartLabel();
|
||||||
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,7 +206,11 @@ namespace XCharts
|
|||||||
public virtual bool AddData(int serieIndex, List<float> multidimensionalData, string dataName = null)
|
public virtual bool AddData(int serieIndex, List<float> multidimensionalData, string dataName = null)
|
||||||
{
|
{
|
||||||
var success = m_Series.AddData(serieIndex, multidimensionalData, dataName, m_MaxCacheDataNumber);
|
var success = m_Series.AddData(serieIndex, multidimensionalData, dataName, m_MaxCacheDataNumber);
|
||||||
if (success) RefreshChart();
|
if (success)
|
||||||
|
{
|
||||||
|
RefreshChart();
|
||||||
|
ReinitChartLabel();
|
||||||
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,7 +226,11 @@ namespace XCharts
|
|||||||
public virtual bool AddData(string serieName, float xValue, float yValue, string dataName)
|
public virtual bool AddData(string serieName, float xValue, float yValue, string dataName)
|
||||||
{
|
{
|
||||||
var success = m_Series.AddXYData(serieName, xValue, yValue, dataName, m_MaxCacheDataNumber);
|
var success = m_Series.AddXYData(serieName, xValue, yValue, dataName, m_MaxCacheDataNumber);
|
||||||
if (success) RefreshChart();
|
if (success)
|
||||||
|
{
|
||||||
|
RefreshChart();
|
||||||
|
ReinitChartLabel();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,7 +246,11 @@ namespace XCharts
|
|||||||
public virtual bool AddData(int serieIndex, float xValue, float yValue, string dataName = null)
|
public virtual bool AddData(int serieIndex, float xValue, float yValue, string dataName = null)
|
||||||
{
|
{
|
||||||
var success = m_Series.AddXYData(serieIndex, xValue, yValue, dataName, m_MaxCacheDataNumber);
|
var success = m_Series.AddXYData(serieIndex, xValue, yValue, dataName, m_MaxCacheDataNumber);
|
||||||
if (success) RefreshChart();
|
if (success)
|
||||||
|
{
|
||||||
|
RefreshChart();
|
||||||
|
ReinitChartLabel();
|
||||||
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,6 +280,30 @@ namespace XCharts
|
|||||||
RefreshChart();
|
RefreshChart();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update serie data name.
|
||||||
|
/// 更新指定系列中的指定索引数据名称。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="serieName"></param>
|
||||||
|
/// <param name="dataName"></param>
|
||||||
|
/// <param name="dataIndex"></param>
|
||||||
|
public virtual void UpdateDataName(string serieName, string dataName, int dataIndex = 0)
|
||||||
|
{
|
||||||
|
m_Series.UpdateDataName(serieName, dataName, dataIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update serie data name.
|
||||||
|
/// 更新指定系列中的指定索引数据名称。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="serieIndex"></param>
|
||||||
|
/// <param name="dataName"></param>
|
||||||
|
/// <param name="dataIndex"></param>
|
||||||
|
public virtual void UpdateDataName(int serieIndex, string dataName, int dataIndex)
|
||||||
|
{
|
||||||
|
m_Series.UpdateDataName(serieIndex, dataName, dataIndex);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to show serie.
|
/// Whether to show serie.
|
||||||
/// 设置指定系列是否显示。
|
/// 设置指定系列是否显示。
|
||||||
@@ -352,6 +396,14 @@ namespace XCharts
|
|||||||
m_RefreshChart = true;
|
m_RefreshChart = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重新初始化Label。
|
||||||
|
/// </summary>
|
||||||
|
public void ReinitChartLabel()
|
||||||
|
{
|
||||||
|
m_ReinitLabel = true;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Update chart theme.
|
/// Update chart theme.
|
||||||
/// 切换图表主题。
|
/// 切换图表主题。
|
||||||
|
|||||||
@@ -341,6 +341,7 @@ namespace XCharts
|
|||||||
var isHighlight = (serieData.highlighted && serie.highlightLabel.show);
|
var isHighlight = (serieData.highlighted && serie.highlightLabel.show);
|
||||||
if (serie.label.show || isHighlight)
|
if (serie.label.show || isHighlight)
|
||||||
{
|
{
|
||||||
|
ChartHelper.SetActive(serieData.label.gameObject,true);
|
||||||
float rotate = 0;
|
float rotate = 0;
|
||||||
bool isInsidePosition = serie.label.position == SerieLabel.Position.Inside;
|
bool isInsidePosition = serie.label.position == SerieLabel.Position.Inside;
|
||||||
if (serie.label.rotate > 0 && isInsidePosition)
|
if (serie.label.rotate > 0 && isInsidePosition)
|
||||||
|
|||||||
Reference in New Issue
Block a user