iOS 14:
iOS 14 doesn't show extra separators below the list by default and to removing all separators, you need to use a LazyVStack
inside a ScrollView
instead. (because iOS is NOT supporting appearance for SwiftUI lists anymore).
iOS 13:
⚠️ This method is deprecated and it's not working from iOS 14
No need for Section
or .grouped
style!
There is a UITableView
behind SwiftUI's List
for iOS 13. So to remove
- Extra separators (below the list):
you need a tableFooterView
and to remove.
Note that iOS 14 doesn't show extra separators below the list by default.
- All separators (including the actual ones):
you need separatorStyle
to be .none
init() {
if #available(iOS 14.0, *) {
// iOS 14 doesn't have extra separators below the list by default.
} else {
// 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")
}
}
Note that it eliminates all tables/lists's separators. So you can toggle it in a methods like onAppear()
or etc. as you wish.
footerView
to an empty view. Maybe SwiftUI supports a List footer. – rmaddy