반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
[원문 : https://www.hackingwithswift.com/quick-start/swiftui/how-to-let-users-delete-rows-from-a-list]
How to let users delete rows from a list
SwiftUI는 onDelete(perform:) 처리기(handler)를 일부 또는 모든 데이터에 붙여서 사용자가 스와이프로 행을 쉽게 삭제할 수 있습니다. 이러한 처리기는 다음과 같이 삭제한 여러개의 인덱스들을 받는 특별한 표시(signature)가 필요합니다.
func delete(at offsets: IndexSet) {
그 내부에서는 일반적으로 시퀀스에서 요청했던 행들(rows)을 삭제하기 위해서 Swift의 remove(atOffset:) 메소드를 호출하길 원할 것입니다. SwiftUI는 상태(state)를 관찰하기 때문에, 모든 변경사항은 UI에 자동적으로 반영될 것입니다.
예를들어, 다음은 3개의 항목 목록으로 된 ContentView 구조체를 만들고 목록에서 항목을 삭제하는 onDelete(perform:) modifier를 붙입니다.
struct ContentView: View {
@State private var users = ["Paul", "Taylor", "Adele"]
var body: some View {
NavigationView {
List {
ForEach(users, id: \.self) { user in
Text(user)
}
.onDelete(perform: delete)
}
}
}
func delete(at offsets: IndexSet) {
users.remove(atOffsets: offsets)
}
}
코드를 실행하는 경우에 스와이프(swipe)로 목록에 있는 행을 삭제할 수 있는것을 알게 될 것입니다.
반응형
'SwiftUI > Lists' 카테고리의 다른 글
How to set the background color of list rows using listRowBackground() (0) | 2019.11.20 |
---|---|
How to make a grouped list (0) | 2019.11.20 |
How to add sections to a list (0) | 2019.11.20 |
How to enable editing on a list using EditButton (0) | 2019.11.20 |
How to let users move rows in a list (0) | 2019.11.20 |
How to create a list of dynamic items (0) | 2019.11.20 |
How to create a list of static items (0) | 2019.11.20 |
Working with lists (0) | 2019.11.20 |