mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-24 01:40:06 +00:00
增加Legend的TextLimit可限制图例显示文本的长度
This commit is contained in:
@@ -2342,6 +2342,9 @@ Configurations of select state.
|
||||
|IsIgnoreValue()||public bool IsIgnoreValue(SerieData serieData, double value)|
|
||||
|IsIgnoreValue()||public bool IsIgnoreValue(SerieData serieData, int dimension = 1)|
|
||||
|IsLegendName()||public bool IsLegendName(string legendName)|
|
||||
|IsMinShowLabelValue()||public bool IsMinShowLabelValue(double value)|
|
||||
|IsMinShowLabelValue()||public bool IsMinShowLabelValue(int index, int dimension = 1)|
|
||||
|IsMinShowLabelValue()||public bool IsMinShowLabelValue(SerieData serieData, int dimension = 1)|
|
||||
|IsPerformanceMode()||public bool IsPerformanceMode()<br/>是否为性能模式。性能模式下不绘制Symbol,不刷新Label,不单独设置数据项配置。 |
|
||||
|IsSerie<T>()||public bool IsSerie<T>() where T : Serie|
|
||||
|IsSerieDataLegendName()||public bool IsSerieDataLegendName(string legendName)|
|
||||
|
||||
@@ -1303,6 +1303,7 @@ Legend component.The legend component shows different sets of tags, colors, and
|
||||
|itemOpacity|1||the opacity of item color.
|
||||
|formatter|||No longer used, the use of LabelStyle.formatter instead.
|
||||
|labelStyle|||the style of text. [LabelStyle](#labelstyle)|
|
||||
|textLimit||v3.10.0|the limit of text. [TextLimit](#textlimit)|
|
||||
|data|||Data array of legend. An array item is usually a name representing string. (If it is a pie chart, it could also be the name of a single data in the pie chart) of a series. If data is not specified, it will be auto collected from series.
|
||||
|icons|||自定义的图例标记图形。
|
||||
|colors|||the colors of legend item.
|
||||
@@ -1816,6 +1817,8 @@ Configurations of select state.
|
||||
|center|||the center of chart.
|
||||
|radius|||the radius of chart.
|
||||
|minRadius|0f|v3.8.0|the min radius of chart. It can be used to limit the minimum radius of the rose chart.
|
||||
|minShowLabel|false|v3.10.0|Whether the label is not displayed when the enabled value is less than the specified value.
|
||||
|minShowLabelValue|0|v3.10.0|When 'minShowLabel' is enabled, labels are not displayed if the value is less than this value.
|
||||
|showDataDimension|||数据项里的数据维数。
|
||||
|showDataName|||在Editor的inpsector上是否显示name参数
|
||||
|clip|false||If clip the overflow on the coordinate system.
|
||||
|
||||
@@ -2342,6 +2342,9 @@ Radar coordinate conponnet for radar charts. 雷达图坐标系组件,只适
|
||||
|IsIgnoreValue()||public bool IsIgnoreValue(SerieData serieData, double value)|
|
||||
|IsIgnoreValue()||public bool IsIgnoreValue(SerieData serieData, int dimension = 1)|
|
||||
|IsLegendName()||public bool IsLegendName(string legendName)|
|
||||
|IsMinShowLabelValue()||public bool IsMinShowLabelValue(double value)|
|
||||
|IsMinShowLabelValue()||public bool IsMinShowLabelValue(int index, int dimension = 1)|
|
||||
|IsMinShowLabelValue()||public bool IsMinShowLabelValue(SerieData serieData, int dimension = 1)|
|
||||
|IsPerformanceMode()||public bool IsPerformanceMode()<br/>是否为性能模式。性能模式下不绘制Symbol,不刷新Label,不单独设置数据项配置。 |
|
||||
|IsSerie<T>()||public bool IsSerie<T>() where T : Serie|
|
||||
|IsSerieDataLegendName()||public bool IsSerieDataLegendName(string legendName)|
|
||||
|
||||
@@ -70,6 +70,7 @@ slug: /changelog
|
||||
|
||||
## master
|
||||
|
||||
* (2023.12.12) 增加`Legend`的`TextLimit`可限制图例显示文本的长度
|
||||
* (2023.12.11) 修复`Serie`添加`double.MaxValue`时坐标绘制失败的问题
|
||||
* (2023.12.10) 增加`Serie`的`minShowLabel`可隐藏小于指定值的`label`
|
||||
* (2023.12.09) 增加`LevelStyle`的`LineStyle`和`depth`支持
|
||||
|
||||
@@ -1266,6 +1266,7 @@ Drawing grid in rectangular coordinate. Line chart, bar chart, and scatter chart
|
||||
|itemOpacity|1||图例标记的图形的颜色透明度。
|
||||
|formatter|||不再使用,使用LabelStyle.formatter代替。
|
||||
|labelStyle|||文本样式。 [LabelStyle](#labelstyle)|
|
||||
|textLimit||v3.10.0|文本限制。 [TextLimit](#textlimit)|
|
||||
|data|||图例的数据数组。数组项通常为一个字符串,每一项代表一个系列的 name(如果是饼图,也可以是饼图单个数据的 name)。 如果 data 没有被指定,会自动从当前系列中获取。指定data时里面的数据项和serie匹配时才会生效。
|
||||
|icons|||自定义的图例标记图形。
|
||||
|colors|||图例标记的颜色列表。
|
||||
@@ -1761,6 +1762,8 @@ Radar coordinate conponnet for radar charts. 雷达图坐标系组件,只适
|
||||
|center|||中心点。
|
||||
|radius|||半径。radius[0]表示内径,radius[1]表示外径。
|
||||
|minRadius|0f|v3.8.0|最小半径。可用于限制玫瑰图的最小半径。
|
||||
|minShowLabel|false|v3.10.0|是否开启值小于指定值`minShowLabelValue`时不显示标签。
|
||||
|minShowLabelValue|0|v3.10.0|当开启`minShowLabel`时,值小于该值时不显示标签。
|
||||
|showDataDimension|||数据项里的数据维数。
|
||||
|showDataName|||在Editor的inpsector上是否显示name参数
|
||||
|clip|false||是否裁剪超出坐标系部分的图形。
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace XCharts.Editor
|
||||
PropertyField("m_Orient");
|
||||
PropertyField("m_Location");
|
||||
PropertyField("m_LabelStyle");
|
||||
PropertyField("m_TextLimit");
|
||||
PropertyField("m_Background");
|
||||
PropertyField("m_Padding");
|
||||
PropertyListField("m_Icons");
|
||||
|
||||
@@ -81,6 +81,7 @@ namespace XCharts.Runtime
|
||||
[SerializeField] private float m_ItemOpacity = 1;
|
||||
[SerializeField] private string m_Formatter;
|
||||
[SerializeField] private LabelStyle m_LabelStyle = new LabelStyle();
|
||||
[SerializeField][Since("v3.10.0")] private TextLimit m_TextLimit = new TextLimit();
|
||||
[SerializeField] private List<string> m_Data = new List<string>();
|
||||
[SerializeField] private List<Sprite> m_Icons = new List<Sprite>();
|
||||
[SerializeField] private List<Color> m_Colors = new List<Color>();
|
||||
@@ -184,7 +185,7 @@ namespace XCharts.Runtime
|
||||
/// No longer used, the use of LabelStyle.formatter instead.
|
||||
/// ||不再使用,使用LabelStyle.formatter代替。
|
||||
/// </summary>
|
||||
[Obsolete("Use LabelStyle.formatter instead.", false)]
|
||||
[Obsolete("Use LabelStyle.formatter instead.", false)]
|
||||
public string formatter
|
||||
{
|
||||
get { return m_Formatter; }
|
||||
@@ -200,6 +201,15 @@ namespace XCharts.Runtime
|
||||
set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); }
|
||||
}
|
||||
/// <summary>
|
||||
/// the limit of text.
|
||||
/// ||文本限制。
|
||||
/// </summary>
|
||||
public TextLimit textLimit
|
||||
{
|
||||
get { return m_TextLimit; }
|
||||
set { if (value != null) { m_TextLimit = value; SetComponentDirty(); } }
|
||||
}
|
||||
/// <summary>
|
||||
/// the sytle of background.
|
||||
/// ||背景图样式。
|
||||
/// </summary>
|
||||
@@ -264,7 +274,7 @@ namespace XCharts.Runtime
|
||||
/// </summary>
|
||||
public override bool componentDirty
|
||||
{
|
||||
get { return m_ComponentDirty || location.componentDirty || labelStyle.componentDirty; }
|
||||
get { return m_ComponentDirty || location.componentDirty || labelStyle.componentDirty || textLimit.componentDirty; }
|
||||
}
|
||||
|
||||
public override void ClearComponentDirty()
|
||||
@@ -272,6 +282,7 @@ namespace XCharts.Runtime
|
||||
base.ClearComponentDirty();
|
||||
location.ClearComponentDirty();
|
||||
labelStyle.ClearComponentDirty();
|
||||
textLimit.ClearComponentDirty();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -86,18 +86,26 @@ namespace XCharts.Runtime
|
||||
legend.RemoveButton();
|
||||
ChartHelper.HideAllObject(legendObject);
|
||||
if (!legend.show) return;
|
||||
var textLimitInitFlag = false;
|
||||
for (int i = 0; i < datas.Count; i++)
|
||||
{
|
||||
if (!SeriesHelper.IsLegalLegendName(datas[i])) continue;
|
||||
string legendName = datas[i];
|
||||
var legendContent = GetFormatterContent(legend, i, datas[i]);
|
||||
if (legend.textLimit.enable)
|
||||
legendContent = legend.textLimit.GetLimitContent(legendContent);
|
||||
var readIndex = chart.m_LegendRealShowName.IndexOf(datas[i]);
|
||||
var active = chart.IsActiveByLegend(datas[i]);
|
||||
var bgColor = LegendHelper.GetIconColor(chart, legend, readIndex, datas[i], active);
|
||||
bgColor.a = legend.itemOpacity;
|
||||
var item = LegendHelper.AddLegendItem(chart, legend, i, datas[i], legendObject.transform, chart.theme,
|
||||
var item = LegendHelper.AddLegendItem(chart, legend, i, legendName, legendObject.transform, chart.theme,
|
||||
legendContent, bgColor, active, readIndex);
|
||||
legend.SetButton(legendName, item, totalLegend);
|
||||
if (!textLimitInitFlag && legend.textLimit.enable)
|
||||
{
|
||||
textLimitInitFlag = true;
|
||||
legend.textLimit.SetRelatedText(item.text, legend.itemWidth);
|
||||
}
|
||||
ChartHelper.ClearEventListener(item.button.gameObject);
|
||||
ChartHelper.AddEventListener(item.button.gameObject, EventTriggerType.PointerDown, (data) =>
|
||||
{
|
||||
|
||||
@@ -29,6 +29,8 @@ namespace XCharts.Runtime
|
||||
public string legendName { get { return m_LegendName; } set { m_LegendName = value; } }
|
||||
public GameObject gameObject { get { return m_GameObject; } }
|
||||
public Button button { get { return m_Button; } }
|
||||
public ChartText text { get { return m_Text; } }
|
||||
|
||||
public float width
|
||||
{
|
||||
get
|
||||
|
||||
Reference in New Issue
Block a user