10. Медленный GalleryView со списком картин
Экран выставки картин работает медленно и прерывисто. Нужно указать проблемы в этом коде и исправить его так, чтобы этих проблем не осталось.
enum PaintingType: Identifiable {
case masterpiece
case contemporary
case sketch
var id: UUID { UUID() }
}
struct Exhibition {
var title: String
var description: String
var paintings: [PaintingType] = []
}
struct TitleView: View {
let exhibition: Exhibition
var body: some View {
Text(exhibition.title)
}
}
struct PaintingView: View {
var painting: PaintingType
var body: some View {
// Интерфейс картины
}
}
struct GalleryView: View {
@State var exhibition: Exhibition
var body: some View {
ScrollView {
VStack {
TitleView(exhibition: exhibition)
ForEach(exhibition.paintings) { painting in
if painting != .sketch {
PaintingView(painting: painting)
}
}
TextField("Название", text: $exhibition.title)
Text(exhibition.description)
}
}
}
}Дополнительные вопросы
1. Если view нужны несколько полей, например четыре, как передать их?