Двойной список в NavigationView [Swift]

Я пытаюсь уместить две категории элемента в два разных списка, названных "Широкое поле" и "Глубокое небо", однако я хочу, чтобы второй список располагался ниже первого.

Я ожидал, что это будет выглядеть примерно так:

Однако вместо этого он разделяет экран пополам, и я получаю такой результат:

Мой текущий код:

import SwiftUI

struct ListView: View {
    @Environment(\.colorScheme) var colorScheme

    var body: some View {
        NavigationView {
            VStack {
                List {
                    ForEach(Photographs.wideFieldPhotos, id: \.self) { key in
                        HStack {
                            PhotographRow(photo: key)
                        }
                    }
                }
                .navigationBarTitle("Wide-Field")
                List {
                    ForEach(Photographs.deepSkyPhotos, id: \.self) { key in
                        HStack {
                            PhotographRow(photo: key)
                        }
                    }
                }
                .navigationBarTitle("Deep-Sky")
            }
        }
    }
}

struct ListView_Previews: PreviewProvider {
    static var previews: some View {
        ListView()
    }
}

1 ответ

Решение

Я предполагаю, что вместо этого вам нужен один список с двумя разделами, например

var body: some View {
    NavigationView {
        List {
            Section(header: Text("Wide-Field").font(.largeTitle)) {
                ForEach(Photographs.wideFieldPhotos, id: \.self) { key in
                    HStack {
                        PhotographRow(photo: key)
                    }
                }
            }

            Section(header: Text("Deep-Sky").font(.largeTitle)) {
                ForEach(Photographs.deepSkyPhotos, id: \.self) { key in
                    HStack {
                        PhotographRow(photo: key)
                    }
                }
            }
        }
    }
}
Другие вопросы по тегам