#ios #xcode #list #swiftui
#iOS #xcode #Список #swiftui
Вопрос:
У меня есть список «игроков» в моем приложении, и я хочу, чтобы у некоторых из них был другой цвет фона в зависимости от их свойств.
Каждый объект Player имеет свойство .active, которое имеет значение true или false. В зависимости от этого значения я хочу, чтобы фон этой строки был светло-серым, а не белым, как у других. Как мне это сделать? Я надеялся, что это будет так просто, как:
List(homeTeam.players) {player in
HStack{
Text("(player.shirtNumber) - (player.playerName)")
Spacer()
Text("(player.timerText)")
}
}
Ответ №1:
Этого можно добиться с listRowBackground
помощью модификатора (но вам нужно использовать ForEach
вместо List
прямого).
List {
ForEach(homeTeam.players) {player in
HStack{
Text("(player.shirtNumber) - (player.playerName)")
Spacer()
Text("(player.timerText)")
}
.listRowBackground(player.active ? Color(UIColor.lightGray) :
Color(UIColor.systemBackground))
}
}