Возможно, вы ищете модификатор .listRowInsets
.
Решение:
List {
ForEach(Terminal.terminals, id: \.self.distance) {
PayTerminalAdapter(terminal: terminal).background(Color.white)
}
.listRowInsets(EdgeInsets(top: 1, leading: 2, bottom: 1, trailing: 2))
}
Выше вы, возможно, заметили, что List(data:)
теперь просто List(content:)
, и данные перемещаются в ForEach(data:id:)
.
Я не уверен, есть ли ошибка SwiftUI, но .listRowInsets
работает только для отдельных элементов. Этот единственный элемент может иметь несколько элементов, и его можно использовать повторно, поэтому не стоит беспокоиться.
Однако, как тест, даже если выглядит следующее, как будто он должен работать, он не работает:
Пример (не работает):
List(0...100, id: \.self) { _ in
Text("Custom row inset not being applied")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.gray)
.listRowInsets(EdgeInsets(top: 1, leading: 2, bottom: 1, trailing: 2))
}
Итак, поместите ваш источник данных в ForEach
и примените к нему .listRowInsets
.
Пример (рабочий):
List {
ForEach(0...100, id: \.self) { _ in
Text("Custom row inset being applied")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.gray)
}
.listRowInsets(EdgeInsets(top: 1, leading: 2, bottom: 1, trailing: 2))
}