Подробнее о проблеме
Я хочу добиться дизайна, похожего на это приложение со списком дел, чтобы copy
Моя главная задача — разместить кнопку «+» прямо под списком. Я экспериментировал с двумя подходами:
(1) Кнопка под списком в VStack:
Этот метод размещает кнопку непосредственно под списком, но это приводит к резким краям. внизу последнего элемента списка.
(2) Кнопка в разделе под списком:
Хотя при этом кнопка правильно позиционируется в новом разделе, создается избыточное пространство. , нажав кнопку слишком далеко от последнего элемента списка.
Примеры кода
Принцип (1): кнопка под списком
Код: Выделить всё
var body: some View {
VStack {
List {
ForEach(items, id: \.self) { item in
HStack {
Image(systemName: "circle") // Placeholder for checkbox
Text(item)
}
}
.onDelete(perform: deleteItem)
Button(action: addItem) {
HStack {
Image(systemName: "plus")
.foregroundColor(.black) // Color of the plus icon
}
}
.listRowBackground(Color.clear)
}
}
}
Концепция (2): кнопка в разделе под списком
Код: Выделить всё
var body: some View {
VStack {
List {
ForEach(items, id: \.self) { item in
HStack {
Image(systemName: "circle") // Placeholder for checkbox
Text(item)
}
}
.onDelete(perform: deleteItem)
Section {
Button(action: addItem) {
HStack {
Image(systemName: "plus")
.foregroundColor(.black) // Color of the plus icon
}
}
.listRowBackground(Color.clear)
}
}
}
}
Вопрос
Есть ли у кого-нибудь предложения о том, как расположить знак «+» кнопку, чтобы плавно разместиться под последним элементом в списке, не создавая пробелов или резких краев? Будем очень признательны за любые советы или альтернативные подходы!
Редактировать:
Каждый раз, когда я пытаюсь добавить нижний колонтитул, я получаю это -
Код:
Код: Выделить всё
var body: some View {
Section {
List {
ForEach(items, id: \.self) { item in
HStack {
Image(systemName: "circle")
Text(item)
}
}
}
} footer: {
VStack {
Spacer() //
Подробнее здесь: [url]https://stackoverflow.com/questions/79263811/how-to-position-a-floating-button-below-a-list-in-swiftui[/url]
Мобильная версия