Удалите лишние разделители под списком в SwiftUI - PullRequest
9 голосов
/ 07 июня 2019

Я создал простой List, как показано ниже, но под ним есть дополнительные разделители.

List {
  Text("Item 1")
  Text("Item 2")
  Text("Item 3")
}

Результат:

enter image description here

Я пытался встроить Список в VStack и добавить Spacer(), как показано ниже, но он не работает должным образом. Удаляет около половины пустых ячеек.

VStack{
  List {
    Text("Item 1")
    Text("Item 2")
    Text("Item 3")
  }
  Spacer()
}

Как бы я удалил эти дополнительные разделители в SwiftUI?

Ответы [ 5 ]

10 голосов
/ 07 июня 2019

Это не идеальное решение, но вы можете использовать ScrollView, где каждая ячейка создается с помощью вызова ForEach, а разделители создаются с помощью Divider ().

Редактировать: я говорил с инженерами Apple вWWDC об этом.Они слышали много отзывов относительно удаления / замены разделителей.Тем не менее, пока мой ответ выше является их рекомендацией.

6 голосов
/ 07 июня 2019

Не идеальное решение, но вы можете сделать стиль списка .grouped на .listStyle(.grouped), который удалит все пустые ячейки, которые могут появиться ниже.

2 голосов
/ 13 июня 2019

Добавление белого прямоугольника в качестве нижнего колонтитула и с 0 EdgeInsets работало для меня:

struct Footer: View {
    var body: some View {
        Rectangle()
            .foregroundColor(.white)
            .listRowInsets(EdgeInsets())
    }
}

struct Timeline : View {
    var body: some View {
        List {
            Section(footer: Footer()) {
                Text("Item 1")
                Text("Item 2")
                Text("Item 3")
            }
        }
    }
}

Единственная проблема заключается в том, что он также добавляет заголовок, и я не уверен, как от него избавиться.

enter image description here

2 голосов
/ 12 июня 2019

Два способа сделать это

=============================================================

struct ContentView: просмотр {

var body: some View {

    List {
            Text("One")
            Text("Two")
            Text("Three")
    }.listStyle(.grouped)
}

}

========================================================

struct ContentView: View {

var body: some View {

    List {
        Section(header: Text("Header"), footer: Text("Footer")) {
            Text("One")
            Text("Two")
            Text("Three")
        }
    }
}

}

Я рекомендую стиль сгруппированного списка

2 голосов
/ 07 июня 2019

Вот один из способов.

List {
         Section(footer: Text(""))) {
                Text("One")
                Text("Two")
                Text("Three")
            }
     }

Вместо представления текста в нижнем колонтитуле вы можете создать свой собственный.Примечание. Я пробовал EmptyView (), но на самом деле это не удаляет избыточные разделители.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...