ios - 在表格的某些单元格中应用颜色
问题描述
作为 swiftUI 的新手,我正在寻找一种能够在表格的某些单元格中应用颜色的方法。例如对于“类型”类别,“系绳”为红色,“无绳”为绿色等......我成功地将值放入“ForEach”,但另一方面我无法在那里整合文本。当我设法应用文本时,单元格颜色不适用。如果我能得到你的知情意见,我是一个接受者。谢谢你。
struct Jailbreak: Identifiable {
let id = UUID()
let noms: String
let types: String
let plateformes: String
}
struct AnnuaireView: View {
var JailbreakList = [
Jailbreak(noms: "Unc0ver", types: "Semi-Untethered", plateformes: "iOS/iPadOS"),
Jailbreak(noms: "Pangu9", types: "Untethered", plateformes: "iOS/tvOS")
]
let gridItems = [
GridItem(.flexible(), spacing: 3.0, alignment: .center),
GridItem(.flexible(), spacing: 3.0, alignment: .center),
GridItem(.flexible(), spacing: 3.0, alignment: .center),
]
var body: some View {
VStack {
HStack {
Text("Liste des Jailbreaks")
.font(.title)
.foregroundColor(Color.pink)
}
ScrollView(.vertical) {
LazyVGrid(columns: gridItems, alignment: .center, spacing: 10) {
ForEach(JailbreakList){ Jailbreak in
Text(Jailbreak.noms)
Text(Jailbreak.types)
.multilineTextAlignment(.center)
Text(Jailbreak.plateformes)
解决方案
您可以添加一个返回颜色的函数,并使用修饰符 .foregroundColor() 应用该颜色。如果您不想更改文本颜色而是更改背景颜色,请改用 .background() 修饰符。
struct AnnuaireView: View {
var JailbreakList = [
Jailbreak(noms: "Unc0ver", types: "Semi-Untethered", plateformes: "iOS/iPadOS"),
Jailbreak(noms: "Pangu9", types: "Untethered", plateformes: "iOS/tvOS")
]
let gridItems = [
GridItem(.flexible(), spacing: 3.0, alignment: .center),
GridItem(.flexible(), spacing: 3.0, alignment: .center),
GridItem(.flexible(), spacing: 3.0, alignment: .center),
]
var body: some View {
VStack {
HStack {
Text("Liste des Jailbreaks")
.font(.title)
.foregroundColor(Color.pink)
}
ScrollView(.vertical) {
LazyVGrid(columns: gridItems, alignment: .center, spacing: 10) {
ForEach(JailbreakList){ Jailbreak in
Text(Jailbreak.noms)
Text(Jailbreak.types)
.multilineTextAlignment(.center)
.foregroundColor(getColor(for: Jailbreak))
Text(Jailbreak.plateformes)
}
}
}
}
}
private func getColor(for jailbreak: Jailbreak) -> Color {
switch jailbreak.types {
case "Untethered":
return Color.red
case "Semi-Untethered":
return Color.orange
case "Tethered":
return Color.green
default:
return Color.black
}
}
}
推荐阅读
- php - Laravel Artisan::call() 如果失败则捕获异常
- javascript - Discord bot 来自 PC 的普通用户名,但来自手机的 @invalid-user
- python - 我在处理 django 项目时无法修复错误,TypeError: expected str, bytes or os.PathLike object, not function
- amazon-web-services - Redshift COPY 命令中的时间戳格式无效
- python - 我需要将一些字典键从字符串转换为整数,但我得到一个“invalid literal for int() with base 10”
- arrays - QVector + QScopedPointer - 传递给 C 运行时函数的无效参数
- angular - 导航/路由回组件时不会触发 ngOnInit
- c# - 有人可以帮我解释一下吗
- apache - Mod用变量重写
- c# - 如何测试逻辑树 - 10 个意外的测试结果