#ios #xcode #list #swiftui
Вопрос:
Я пытаюсь добавить в свой список очень короткую строку с высотой рамки 2, но список добавляет нежелательное заполнение выше и ниже элемента списка или ограничивает его минимальной высотой, и я не знаю, как его удалить. Я привел следующее, чтобы проиллюстрировать проблему:
struct ContentView: View {
var body: some View {
List {
Color.red
.frame(height: 2)
Color.blue
.frame(height: 2)
}
}
}
Как я могу удалить это дополнение над и под элементом списка? То же самое происходит при использовании раздела и добавлении верхнего или нижнего колонтитула. Это не позволит мне иметь запись в списке с небольшой высотой рамки.
В LazyVStack у меня нет этой проблемы, но мне нужно использовать список.
Ответ №1:
- Используйте
.environment(.defaultMinListRowHeight, 0)
, чтобы каждая строка имела минимальную высоту 0. В противном случае каждая строка всегда будет иметь высоту не менее 44 (по умолчанию) баллов. - Используйте
.listRowInsets(EdgeInsets())
, чтобы в каждой строке не было вставки. Вы также могли бы это сделать.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
, что приводит к тому же.
struct ContentView: View {
var body: some View {
List {
Color.red
.frame(height: 5)
.listRowInsets(EdgeInsets()) /// 2.
Color.blue
.frame(height: 5)
.listRowInsets(EdgeInsets())
}
.environment(.defaultMinListRowHeight, 0) /// 1.
}
}
Результат: