ios - SwiftUI 中无法使用对象属性创建颜色
问题描述
我有一个 SwiftUI iOS 应用程序,它从本地 JSON 文件中提取数据。
一切正常,除了在一个视图中,我无法使用传递到视图中的对象的属性来创建新的Color
.
struct CategoryItem: View {
var item: Item
var body: some View {
VStack(alignment: .leading) {
ZStack {
Rectangle()
.foregroundColor(Color(red: item.backgroundColor[0] / 255, green: 242 / 255, blue: 242 / 255))
出于某种原因,item.backgroundColor[0]
如果我使用 打印出来,返回正确String(item.backgroundColor[0])
,所以值在那里,但计算抛出错误。我怀疑这与Color
计算属性有关,但我不确定为什么会发生错误。
任何帮助将不胜感激!
解决方案
我想到了。
事实证明,即使静态整数(例如)表示为整数,也item.backgroundColor[0]
需要将其指定为 a 。Double()
255
解决方案是Double()
使用这样的函数将所有内容包装起来:
func colorsFromProperty(colors: [Double]) -> Color {
return Color(red: Double(colors[0] / 255), green: Double(colors[1] / 255), blue: Double(colors[2] / 255))
}
推荐阅读
- c++ - 如何比较文件包含的下一个字符?
- java - 在Java中将数字从字符串转换为int时的随机负数
- python - 如何制作这些顺序直方图/密度估计图
- javascript - 单击重点侧导航中的链接打开向下滚动的页面
- python - 如何使用先前的预测模型来预测一系列数字之间的值
- python - 如何根据另一个不同长度的列表对列表进行排序(需要非常高效)?
- swift - 如何使用 SwiftUI 在 if 语句中创建 var
- python - Jupyter 无法打开笔记本并出现错误:“文件“XX”有未保存的更改,关闭而不保存?”
- java - Java Spring:似乎无法使用@SpringBootApplication、@ComponentScan 找到本地控制器?
- arrays - [array]::Reverse() 方法不适用于 Get-Content 返回对象