SwipeActions SwiftUI внутри элемента строкиIOS

Программируем под IOS
Ответить
Anonymous
 SwipeActions SwiftUI внутри элемента строки

Сообщение Anonymous »

Я пытаюсь добавить в свой код действие swipeAction, но мне нужно, чтобы оно было внутри списка. Позвольте мне объяснить с помощью изображения. Вот что происходит с моим смахиванием:
Изображение

Как видите, действие смахивания начинается с края экрана, и я хочу, чтобы оно начиналось внутри элемента. Вот пример того, как я хочу, чтобы это началось:
Изображение

Как мы видим здесь, поведение находится только ВНУТРИ списка, а мое — вне элемента.
Вот код, который я использую:
List {
ForEach(accounts) { account in
accountRow(account: account)
.containerShape(RoundedRectangle(cornerRadius: 10))
.swipeActions {
Button(role: .destructive) {
accountToDelete = account
showingDeleteAlert = true
} label: {
Label("Delete", systemImage: "trash")
}
}

}
...

@ViewBuilder
private func accountRow(account: Account) -> some View {
HStack {
Spacer()
VStack {
HStack {
Circle()
.fill(Color.blue)
.frame(width: 40, height: 40)
.overlay(
Image(systemName: account.iconName)
.resizable()
.scaledToFit()
.foregroundColor(.white)
.padding(10)
)

VStack(alignment: .leading) {
Text(account.title)
.font(.headline)
Text(balancesHidden ? "***" : abbreviatedAmount(amount: account.balance))
.font(.subheadline)
.foregroundColor(.gray)

}
.padding(.leading, 10)

}
.frame(maxWidth: .infinity, alignment: .leading)
.padding()
.background(Color.dynamic)
.cornerRadius(10)
.shadow(color: Color.black.opacity(0.1), radius: 5, x: 0, y: 2)

}
.frame(maxWidth: UIScreen.main.bounds.width * 0.9) // Adjust the width as needed
Spacer()
}
.listRowSeparator(.hidden)
.padding(.vertical, 5) // Optional: Adjust vertical padding between rows
/* .onTapGesture {
if !(balancesHidden) {
selectedAccountForDetail = account
}

} */
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... ow-element
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»