2016-09-25 14 views
6

hành vi mong muốnNhận ảnh từ Liên Swift

Tôi đang tự hỏi làm thế nào để làm tốt nhất sau đây trong Swift

  1. hiển thị một cửa sổ chọn xúc
  2. Cho phép người dùng lựa chọn một số liên lạc
  3. Tìm nạp hình ảnh từ liên hệ đó.

Nghiên cứu

Trong nghiên cứu câu hỏi này, tôi đã xác định rằng, bắt đầu từ iOS 9, Apple đã giới thiệu một khuôn khổ mới, Contacts, để truy cập vào danh bạ. Tôi cũng đã học được rằng Their documentation mô tả bằng cách sử dụng hệ thống được gọi là Predicates để tìm nạp thông tin từ một liên hệ. Tuy nhiên, tôi không chắc chắn về cách thực hiện điều này.

Thực hiện

Based primarly on this tutorial, tôi đã tìm ra cách để trình bày các hệ cửa sổ Picker.

import UIKit 
import Contacts 
import ContactsUI 

class ViewController: UIViewController, CNContactPickerDelegate { 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 
@IBAction func contactsPressed(_ sender: AnyObject) { 
    let contactPicker = CNContactPickerViewController() 
    contactPicker.delegate = self; 

    self.present(contactPicker, animated: true, completion: nil) 
} 

func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) { 
    //Here is where I am stuck - how do I get the image from the contact? 
} 

} 

Xin cảm ơn trước !!

Trả lời

7

Có ba đặc tính liên quan đến liên hệ với hình ảnh theo API reference doc từ táo:

ảnh Thuộc tính

var imageData: dữ liệu? Ảnh tiểu sử của một liên hệ.

hình thu nhỏ varImageData: Dữ liệu? Phiên bản hình thu nhỏ của ảnh tiểu sử của liên hệ.

var imageDataAvailable: Bool Cho biết liệu liên hệ có ảnh tiểu sử hay không.

Bạn có thể lấy phiên bản CNContact từ CNContactProperty, sau đó truy cập imageData trong lớp CNContact.

Như vậy mã của bạn có thể trông như thế này:

func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) { 
    let contact = contactProperty.contact 
    if contact.imageDataAvailable { 
     // there is an image for this contact 
     let image = UIImage(data: contact.imageData) 
     // Do what ever you want with the contact image below 
     ... 
    } 
} 
+0

Cảm ơn bạn! Tôi đánh giá cao sự giúp đỡ !! – rocket101

Các vấn đề liên quan