LineMark可以自定义颜色吗?

移动开发 2026-07-12

我刚接触SwiftUI Charts。我的基本设置没问题,唯一需要定制的是多线图的颜色。数据来自两个SwiftData类:

class Parts {
  var name: String
  var color: Color
  …
}

class Orders {
  var part: Parts // -> Relationship
  var amount: Int
  var date: Date
  …
}

接着有一个简单的图表:

Chart {
  ForEach(parts) { part in
    ForEach(part.orders.sorted(by: { $0.date < $1.date })) { order in
      LineMark(
        x: .value("Time", order.date), 
        y: .value("Amount", order.amount)
      )
      .foregroundStyle(by: .value("Part", part.name))
    }
  }
}

目前每条线都使用Charts框架提供的预设颜色。但我想要从“Parts”获取自定义颜色。可以做到吗?

解决方案

当然可以使用自定义颜色,把下面这段代码添加到你的图表中

Chart {
...
}
.chartForegroundStyleScale(domain: parts.map(\.name), range: parts.map(\.color))
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章