List 아이템 드래그해서 삭제 처리
List {
ForEach(listItems, id: \.id) { item in
Text(item.name)
}
.onDelete(perform: removeItems)
}
- SwiftUI 의 List 아이템에 제거로직을 추가 하려면 ForEach에 onDelete 수정자를 추가하면 된다.
- onDelete에 perform파라미터로 받는 메소드는 IndexSet을 메소드로 넘겨준다.
IndexSet 이용하여 리스트 핸들링
func removeItems(at offsets: IndexSet) {
let removedItems = offsets.map {listItems[$0]}
for item in removedItems {
api.deleteItem(item.id)
}
}
- IndexSet의 map 메소드를 이용하여 삭제된 item 오브젝트를 가지고 온다.
- 오브젝트로 추가적인 핸들링을 한다. (예시 코드에서는 API 호출)
'IOS' 카테고리의 다른 글
Swift Combine 알아 보기 (1) | 2023.12.18 |
---|---|
iOS fcm을 이용한 remote push 알림 (0) | 2023.09.22 |
SwiftUI ViewBuilder란 (0) | 2023.02.17 |
Swift GCD (0) | 2023.02.02 |
ObservableObject 와 Codable 같이 사용하기 (1) | 2022.12.31 |