ios - 在 iOS 9 中自定义 ContactPicker UI

标签 ios objective-c cncontact

如何自定义 CNContactPickerViewController 的 UI?

我想更改颜色、字体和文本 - 类似于 snapchat 的做法?

enter image description here

目前 - 我的 CNContactPickerViewController 看起来和 Apple 的 native 联系人应用程序一模一样。

最佳答案

首先从地址簿中获取联系人并将它们传递到 NSArray:

CNContactStore *store = [[CNContactStore alloc] init];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {

    NSMutableArray *contacts = [NSMutableArray array];

    NSError *fetchError;
    CNContactFetchRequest *request = [[CNContactFetchRequest alloc] initWithKeysToFetch:@[CNContactIdentifierKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]]];

    BOOL success = [store enumerateContactsWithFetchRequest:request error:&fetchError usingBlock:^(CNContact *contact, BOOL *stop) {
        [contacts addObject:contact];
    }];
    if (!success) {
        NSLog(@"error = %@", fetchError);
    }
}];

然后只需在 UITableView 中使用 NSArray 即可自定义字体、颜色等。

关于ios - 在 iOS 9 中自定义 ContactPicker UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245621/

相关文章:

ios - UITextView的限制行数

ios - 获取 NSArray 中 NSFetchRequest 的所有结果

ios - 半透明模态视图 Controller 不覆盖状态栏

ios - CNContactPickerViewController 即使在禁用设置访问后也会显示

objective-c - 我应该在 Objective C 类中的什么位置设置默认变量值

ios - 为 iOS 版 Google map 位置构建 URL

ios - 如何在 Swift 3.0 中使用 CNContact 获取添加或编辑联系人的日期

ios - 如何使用具有长联系人列表的 Apple 联系人框架更快地获取 iOS 联系人?

ios - 从 objective-c 调用 swift 代码时,第一次推送 View Controller 花费了太多时间

objective-c - clang : error: -Z-reserved-lib-stdc++: 'linker' input unused when '-c' is present after update to xCode 4. 4