Удалить пустые строки в List Swift UI Xcode 11 - PullRequest
0 голосов
/ 08 октября 2019

Как удалить пустые строки в List с помощью Swift UI Вот мой код.

struct LandMarkList: View {
    var body: some View {
        NavigationView {
            List(LandMarkListData) { landmark in
                LandMarkRow(landmark: landmark)
            }

        .navigationBarTitle("List")
        }
    }
}

Ответы [ 4 ]

0 голосов
/ 15 октября 2019
struct LandMarkList: View {
    var body: some View {
        NavigationView {
            List(LandMarkListData) { landmark in
                LandMarkRow(landmark: landmark)
            }

            .navigationBarTitle("List")
            .listStyle(GroupedListStyle())
        }
    }

}

Наконец-то я нашел решение, добавив listStyle.

0 голосов
/ 08 октября 2019
NavigationView {
   ...
   .listStyle(.grouped)
}

В вашем случае:

struct LandMarkList: View {
    var body: some View {
        NavigationView {
            List(LandMarkListData) { landmark in
                LandMarkRow(landmark: landmark)
            }

        .navigationBarTitle("List")
        .listStyle(.grouped)
        }
    }
}
0 голосов
/ 08 октября 2019

Насколько я знаю, в настоящее время нет способа удалить пустые ячейки из List в SwiftUI. Однако вы все равно можете избавиться от пустых ячеек (в частности, от всех неприглядных делителей), вообще не используя List и создавая Divider вручную. Попробуйте что-то вроде следующего:

ScrollView() {
    ForEach(elements) { element in
        CellView(element: element)
        Divider()
    }
}
0 голосов
/ 08 октября 2019

Попробуйте что-то вроде этого:

let nonEmptyLandmarks = LandMarkListData.filter { !$0.isEmpty }
List(nonEmptyLandmarks) { landmark in
     LandMarkRow(landmark: landmark)
}
...