SwiftUI 联系人选择器

原生 SwiftUI CNContactViewController 替代品

License SwiftPM compatible Twitter

CNContactViewController VS. SwiftUI_ContactPicker

使用方法

默认列表,无自定义行布局

import SwiftUIContactPicker

@State var selectedContact: PhoneContact?
@State var viewModel: ContactPickerViewModel = ContactPickerViewModel(store: 
@State var showSheet: Bool = false
private var cpConfig = ContactPickerConfiguration.default

var body: some View {
    Text("Choose a contact")
        .onTapGesture {
            showSheet.toggle()
        }
        .sheet(isPresented: $showSheet, content: {
            ContactPickerView(viewModel: viewModel,
                            config: cpConfig,
                            selectedContact: $selectedContact,
                            onCancel: {
                                showSheet = false
                            })
        })
        .onChange(of: selectedContact) { selected in
            guard let selectedContact = selected else { return }
            print("selected=\(selectedContact.name ?? "")")

        }
}

待办事项