mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-19 15:00:08 +00:00
修复调用UpdateDataName()接口时不会自动刷新的问题
This commit is contained in:
69
Examples/Runtime/Example31_PieUpdateName.cs
Normal file
69
Examples/Runtime/Example31_PieUpdateName.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace XCharts.Examples
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Example31_PieUpdateName : MonoBehaviour
|
||||
{
|
||||
PieChart chart;
|
||||
int count = 0;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<PieChart>();
|
||||
if (chart == null)
|
||||
{
|
||||
chart = gameObject.AddComponent<PieChart>();
|
||||
}
|
||||
var serieIndex = 0;
|
||||
var serie = chart.series.GetSerie(serieIndex);
|
||||
if (serie == null) return;
|
||||
serie.label.show = true;
|
||||
serie.label.position = SerieLabel.Position.Outside;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Space))
|
||||
{
|
||||
if (count % 2 == 0) ResetSameName();
|
||||
else UpdateDataName();
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateDataName()
|
||||
{
|
||||
var serieIndex = 0;
|
||||
var serie = chart.series.GetSerie(serieIndex);
|
||||
if (serie == null) return;
|
||||
for (int i = 0; i < serie.dataCount; i++)
|
||||
{
|
||||
var value = Random.Range(10, 100);
|
||||
chart.UpdateData(serieIndex, i, value);
|
||||
chart.UpdateDataName(serieIndex, i, "value=" + value);
|
||||
}
|
||||
}
|
||||
|
||||
void ResetSameName()
|
||||
{
|
||||
var serieIndex = 0;
|
||||
var serie = chart.series.GetSerie(serieIndex);
|
||||
if (serie == null) return;
|
||||
for (int i = 0; i < serie.dataCount; i++)
|
||||
{
|
||||
chart.UpdateDataName(serieIndex, i, "piename");
|
||||
}
|
||||
chart.themeInfo.SetAllDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Examples/Runtime/Example31_PieUpdateName.cs.meta
Normal file
11
Examples/Runtime/Example31_PieUpdateName.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41195ee7a652f4ef79c22c365d314621
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -99,6 +99,7 @@ namespace XCharts
|
||||
{
|
||||
base.ClearDirty();
|
||||
ClearLabelDirty();
|
||||
SeriesHelper.ClearNameDirty(this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -131,7 +131,6 @@ namespace XCharts
|
||||
protected virtual void Update()
|
||||
{
|
||||
CheckSize();
|
||||
CheckLegend();
|
||||
CheckComponent();
|
||||
CheckPointerPos();
|
||||
CheckTooltip();
|
||||
@@ -142,6 +141,24 @@ namespace XCharts
|
||||
|
||||
protected virtual void CheckComponent()
|
||||
{
|
||||
if (m_Series.anyDirty)
|
||||
{
|
||||
if (m_Series.vertsDirty) RefreshChart();
|
||||
if (SeriesHelper.IsLabelDirty(m_Series)) m_ReinitLabel = true;
|
||||
if (SeriesHelper.IsNeedLabelUpdate(m_Series) && !m_RefreshChart) m_RefreshLabel = true;
|
||||
if (SeriesHelper.IsLabelDirty(m_Series)) m_ReinitLabel = true;
|
||||
foreach (var serie in m_Series.list)
|
||||
{
|
||||
if (serie.titleStyle.componentDirty) m_ReinitTitle = true;
|
||||
if (serie.nameDirty)
|
||||
{
|
||||
m_Legend.SetAllDirty();
|
||||
RefreshChart();
|
||||
serie.ClearNameDirty();
|
||||
}
|
||||
}
|
||||
m_Series.ClearDirty();
|
||||
}
|
||||
if (m_ThemeInfo.anyDirty)
|
||||
{
|
||||
if (m_CheckTheme != m_ThemeInfo.theme)
|
||||
@@ -188,17 +205,6 @@ namespace XCharts
|
||||
RefreshChart();
|
||||
m_Settings.ClearDirty();
|
||||
}
|
||||
if (m_Series.anyDirty)
|
||||
{
|
||||
if (m_Series.vertsDirty) RefreshChart();
|
||||
if (SeriesHelper.IsLabelDirty(m_Series)) m_ReinitLabel = true;
|
||||
if (SeriesHelper.IsNeedLabelUpdate(m_Series) && !m_RefreshChart) m_RefreshLabel = true;
|
||||
foreach (var serie in m_Series.list)
|
||||
{
|
||||
if (serie.titleStyle.componentDirty) m_ReinitTitle = true;
|
||||
}
|
||||
m_Series.ClearDirty();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnEnable()
|
||||
@@ -581,23 +587,6 @@ namespace XCharts
|
||||
OnSizeChanged();
|
||||
}
|
||||
|
||||
private void CheckLegend()
|
||||
{
|
||||
if (m_Legend.show)
|
||||
{
|
||||
foreach (var serie in series.list)
|
||||
{
|
||||
if (serie.nameDirty)
|
||||
{
|
||||
m_Legend.SetAllDirty();
|
||||
serie.ClearNameDirty();
|
||||
RefreshChart();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckPointerPos()
|
||||
{
|
||||
if (m_ForceOpenRaycastTarget) raycastTarget = true;
|
||||
|
||||
@@ -31,6 +31,23 @@ namespace XCharts
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsNameDirty(Series series)
|
||||
{
|
||||
foreach (var serie in series.list)
|
||||
{
|
||||
if (serie.nameDirty) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void ClearNameDirty(Series series)
|
||||
{
|
||||
foreach (var serie in series.list)
|
||||
{
|
||||
serie.ClearNameDirty();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsLegalLegendName(string name)
|
||||
{
|
||||
int numName = -1;
|
||||
|
||||
Reference in New Issue
Block a user