Как удалить разделители строк из списка в SwiftUI без использования ForEach?
У меня есть этот код для отображения списка пользовательских строк.
struct ContentView : View {
var body: some View {
VStack(alignment: .leading) {
List(1...10) {_ in
CustomRow()
}
}
}
}
Тем не менее, я хочу удалить строку в каждой строке. Я попытался не использовать List
и вместо этого использовать ForEach
внутри ScrollView
но он полностью удаляет все стили, включая его отступы и поля. Я просто хочу удалить строки и ничего больше.
Пожалуйста, помогите, спасибо.
Ответы
Ответ 1
Добавление UITableView.appearance().separatorColor = .clear
в любом месте вашего кода до появления List
должно работать. Хотя это решение удаляет разделители, обратите внимание, что все экземпляры List
будут привязаны к этому стилю, поскольку в настоящее время нет официального способа удалить только разделители определенных экземпляров. Вы можете запустить этот код в onAppear
и отменить его в onDisappear
, чтобы сохранить разные стили. Также обратите внимание, что в этом коде предполагается, что Apple использует UITableView
для поддержки List
, что не всегда может быть правдой. Надеюсь, они добавят официальный API в будущем.
Ответ 2
Я получил подсказку из приведенного выше ответа. Благодарю.
Мое решение заключается в следующем.
init() {
UITableView.appearance().tableFooterView = UIView()
}
var body: some View {
List {
...
}
}
Ответ 3
Существует UITableView
за SwiftUI List
для iOS. Таким образом, чтобы удалить
Дополнительные разделители (под списком):
вам нужен tableFooterView
и удалить
Все разделители (включая фактические):
вам нужно separatorStyle
, чтобы быть .none
init() {
// To remove only extra separators below the list:
UITableView.appearance().tableFooterView = UIView()
// To remove all separators including the actual ones:
UITableView.appearance().separatorStyle = .none
}
var body: some View {
List {
Text("Item 1")
Text("Item 2")
Text("Item 3")
}
}