본문 바로가기
Language/Swift

SwiftUI를 이용한 편집 버튼 만들기

by IFLA 2022. 11. 5.

 

SwiftUI는 컬렉션에서 객체를 삭제하는 방법을 제어하는 데 사용할 onDelete() 수정자를 제공한다. 이 기능은 목록에서 각 행에만 사용된다.

 

기본 코드

import SwiftUI

struct ContentView: View {
    @State private var fruits = [
        "Apple",
        "Banana",
        "Papaya",
        "Mango"
    ]

    var body: some View {
        NavigationView {
            List {
                ForEach(fruits, id: \.self) { fruit in
                    Text(fruit)
                }
                .onDelete { fruits.remove(atOffsets: $0) }
                .onMove { fruits.move(fromOffsets: $0, toOffset: $1) }
            }
            .navigationTitle("Fruits")
            .toolbar {
                EditButton()
            }
        }
    }
}

 

실행화면

 

  • onDelete()이 작동하려면 IndexSet 형식의 단일 파라미터를 수신할 메서드가 있어야 한다. 이것은 정수의 집학과 비슷하지만 정렬되어 있다.
  • 각 항목에 대해 제거해야 할 모든 항목의 위치를 알려 준다.

 

Navigation View를 이용해서 전체선택 또는 개별 선택하기

  • VStack위에 NavigationView를 덮고, NavigationView안에 아래 두 가지 아이텐 중에 하나를 선택해 추가해주면 된다.

 


개발자 Document

Apple Developer Documentation

댓글


\