【问题标题】:List of Contacts from Contacts App in SwiftUISwiftUI 中联系人应用程序中的联系人列表
【发布时间】:2020-02-07 15:07:15
【问题描述】:

您好,我正在尝试构建一个界面来列出所有联系人,就像 ContactsPhone 应用程序一样,具有相同的 UI。到目前为止我尝试过的内容如下。基本上我尝试使用UIViewControllerRepresentableContactsUI 实现CNContactPickerViewController。但是我得到的是一个空白的白页。

struct ContactsViewController: UIViewControllerRepresentable {

    func makeUIViewController(context: UIViewControllerRepresentableContext<ContactsViewController>) -> CNContactPickerViewController {
        let controller = CNContactPickerViewController()
        controller.delegate = context.coordinator
        controller.displayedPropertyKeys = [CNContactGivenNameKey]
        return controller
    }

    func updateUIViewController(_ uiViewController: CNContactPickerViewController, context: UIViewControllerRepresentableContext<ContactsViewController>) {
        print("updating")
    }

    func makeCoordinator() -> Coordinator {
        return Coordinator(self)
    }

    class Coordinator: NSObject, CNContactPickerDelegate {
        var parent: ContactsViewController

        init(_ contactsViewController: ContactsViewController) {
            self.parent = contactsViewController
        }

    }
}

还有 SwiftUI 文件;

struct ContactsView: View {
    var body: some View {
        ContactsViewController()
    }
}

提醒一下,我在其他一些SwiftUI 文件中调用TabView 内部的ContactsView。所以我想在SwiftUIView 中显示联系人,这是TabView 的一部分。任何帮助将非常感激。

【问题讨论】:

    标签: swift uiviewcontroller swiftui cncontactpicker contactsui


    【解决方案1】:

    这里有两种解决方案:https://stackoverflow.com/a/57621666/8818408

    (1) 有效,但在显示联系人列表之前会闪现一个视图。对用户来说不是一个好的体验。

    (2) 一类的作品。它还会在显示联系人列表之前闪烁一个视图。它以意想不到的透明度和意想不到的颜色显示在前缘、尾缘和底边。这些也许是可以解决的。

    我刚刚开始尝试解决上述 #2 的问题。如果有人能提供一个完全有效的解决方案,那就太好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2016-10-08
      相关资源
      最近更新 更多