2016-09-25 13 views
6

pożądane zachowaniePobierz zdjęcie z kontaktu Swift

Zastanawiam się jak najlepiej wykonać następujące czynności w Swift

  1. wyświetli okno kontakt kompletacji
  2. umożliwić użytkownikowi wybrać kontakt
  3. Pobierz obraz z tego kontaktu.

Badania

Badając tę ​​kwestię, ja ustaliliśmy, że, począwszy od 9 iOS, Apple wprowadziło nowe ramy, Contacts, dostępu do kontaktów. Dowiedziałem się również, że Their documentation opisuje używanie systemu o nazwie Predicates do pobierania informacji z kontaktu. Jednak nie jestem pewien, jak to wdrożyć.

Realizacja

Based primarly on this tutorial, że zorientowali się, jak przedstawić Kontakt okno 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? 
} 

} 

Z góry dziękuję !!

Odpowiedz

7

Istnieją trzy właściwości dotyczące skontaktować obrazów według API reference doc od Apple:

Właściwości obrazu

var imageData: dane? Profilowe zdjęcie kontaktu.

var thumbnailImageData: Data? Miniaturowa wersja zdjęcia profilowego kontaktu.

var imageDataDostępny: Bool Wskazuje, czy kontakt ma zdjęcie profilowe.

Można uzyskać instancję CNContact z CNContactProperty, a następnie uzyskać dostęp imageData w CNContact klasie.

Więc twój kod może wyglądać następująco:

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

Dziękujemy! Doceniam pomoc! – rocket101

Powiązane problemy