Работа с SwiftUI:
У меня есть список представлений в ScrollView, который я создаю с помощью ForEach l oop. Я хочу показать или скрыть несколько маленьких флажков в зависимости от 4 различных свойств Bool в структуре, которую я использую в качестве модели для объектов в списке. Проблема в том, что чем больше я добавляю операторов If, тем хуже становится производительность. Без инструкций If список загружается без заминки. Я сталкиваюсь с этой проблемой только с 120 пунктами в списке. Я хотел бы помочь выяснить, что я делаю неправильно!
Вот пример представления содержимого с ScrollView и l oop:
struct ContentView: View {
@ObservedObject var model = Model()
var body: some View {
ScrollView(.vertical, showsIndicators: true){
VStack(spacing: 10){
ForEach(model.list){ item in
ItemView(item: item)
}
}
}
}// end body
} // end struct
И представления элементов и Структура, которую я использую в качестве модели.
struct ListData: Identifiable {
var id = UUID()
var title: String
var subtitle: String
var isTrue: Bool
var isAlsoTrue:Bool
}
struct ItemView: View {
var item: ListData
var body: some View {
VStack(alignment: .leading){
Text(item.title)
HStack{
if item.isTrue{
FlagView(text: "True")
}
if item.isAlsoTrue{
FlagView(text: "Also")
}
Text(item.subtitle)
Spacer()
}
.font(.system(size: 12, weight: .semibold))
}
.font(.system(size: 14, weight: .semibold))
}
}
struct FlagView: View {
var text: String
var body: some View {
Text(text)
.padding(2)
.foregroundColor(.white)
.background(RoundedRectangle(cornerRadius: 2).foregroundColor(.gray))
}
}
Актуальные объекты имеют 4 свойства Bool, которые я хочу использовать. Есть ли лучший способ скрыть или показать эти флаги в моем списке? Будем очень благодарны за любую помощь в выяснении, что не так с производительностью!