增加Axis可通过设置IconStylecolorclear来实现动态图标颜色的支持

This commit is contained in:
monitor1394
2023-08-09 13:27:03 +08:00
parent 2e2ad0a1f2
commit 01a49de373
4 changed files with 7 additions and 5 deletions

View File

@@ -76,6 +76,7 @@ slug: /changelog
日志详情:
* (2023.08.09) 增加`Axis`可通过设置`IconStyle``color``clear`来实现动态图标颜色的支持
* (2023.08.08) 增加`Pie``LabelLine``lineEndX`的支持
* (2023.08.05) 整理`Examples`的代码,删除不必要的用例
* (2023.08.04) 增加`LabelLine``lineEndX`可设置引导线固定X位置的支持

View File

@@ -387,7 +387,8 @@ namespace XCharts
new Vector2(textWidth, textHeight),
axis, chart.theme.axis, labelName,
Color.clear,
defaultAlignment);
defaultAlignment,
chart.theme.GetColor(i));
if (i == 0)
axis.axisLabel.SetRelatedText(label.text, labelWidth);

View File

@@ -130,7 +130,7 @@ namespace XCharts.Runtime
if (m_IconRect != null) m_IconRect.sizeDelta = new Vector3(width, height);
}
public void UpdateIcon(IconStyle iconStyle, Sprite sprite = null)
public void UpdateIcon(IconStyle iconStyle, Sprite sprite = null, Color color = default(Color))
{
if (m_IconImage == null || iconStyle == null)
return;
@@ -139,7 +139,7 @@ namespace XCharts.Runtime
if (iconStyle.show)
{
m_IconImage.sprite = sprite == null ? iconStyle.sprite : sprite;
m_IconImage.color = iconStyle.color;
m_IconImage.color = ChartHelper.IsClearColor(iconStyle.color) ? color : iconStyle.color;
m_IconImage.type = iconStyle.type;
m_IconRect.sizeDelta = new Vector2(iconStyle.width, iconStyle.height);
m_IconOffest = iconStyle.offset;

View File

@@ -370,12 +370,12 @@ namespace XCharts.Runtime
public static ChartLabel AddAxisLabelObject(int total, int index, string name, Transform parent,
Vector2 sizeDelta, Axis axis, ComponentTheme theme,
string content, Color autoColor, TextAnchor autoAlignment = TextAnchor.MiddleCenter)
string content, Color autoColor, TextAnchor autoAlignment = TextAnchor.MiddleCenter, Color32 iconDefaultColor = default(Color32))
{
var textStyle = axis.axisLabel.textStyle;
var label = AddChartLabel(name, parent, axis.axisLabel, theme, content, autoColor, autoAlignment);
var labelShow = axis.IsNeedShowLabel(index, total);
label.UpdateIcon(axis.axisLabel.icon, axis.GetIcon(index));
label.UpdateIcon(axis.axisLabel.icon, axis.GetIcon(index), iconDefaultColor);
label.text.SetActive(labelShow);
return label;
}