2016-10-11 4 views
1

Hi Ich benutze IOS Swift 3, um den Benutzer Bilder aus der Bibliothek oder dem Album auswählen zu lassen.
Ich habe eine UIImage-Variable.
Wie können wir Eigenschaft Observer die UIImage zu aktualisieren, wenn Benutzer ein Bild auswählen fertigios Swift 3 mit Property Observer update Bild von UIImagePicker

soetwas wie

var image: UIImage = { 
    didSet.... 
} 

Derzeit mache ich diesen

func show(image: UIImage) { 
    imageView.image = image 
    imageView.isHidden = false 
    imageView.frame = CGRect(x: 10, y: 10, width: 260, height: 260) 
     addPhotoLabel.isHidden = true 
} 


func imagePickerController(_ picker: UIImagePickerController, 
didFinishPickingMediaWithInfo info: [String : Any]) { 

    image = info[UIImagePickerControllerEditedImage] as? UIImage 
    if let theImage = image { 
    show(image: theImage) 
    } 
    dismiss(animated: true, completion: nil) 
} 

Denken an Eigentum Observer mit zu Verbessere den Ansatz.
Jede Hilfe ist sehr zu schätzen.

Danke!

+0

hat jemand ein Ideal? –

+0

Warum? Sie brauchen nicht einmal Ihre Image-Eigenschaft. Alles, was Sie tun, ist das Bild auf die ImageView zu setzen. – rmaddy

+0

Hallo, ich verstehe das nicht ganz. Kannst du ein bisschen mehr Details geben? Vielen Dank! –

Antwort

2

Wenn Sie wirklich jederzeit sehen aktualisieren möchten das Bild der image Eigenschaft festgelegt ist, dann einfach den gesamten Code in Ihre show Verfahren in der für die image Eigenschaft didSet Block setzen.

var image: UIImage = { 
    didSet { 
     imageView.image = image 
     imageView.isHidden = false 
     imageView.frame = CGRect(x: 10, y: 10, width: 260, height: 260) 
     addPhotoLabel.isHidden = true 
    } 
} 

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
    if let theImage = info[UIImagePickerControllerEditedImage] as? UIImage { 
     image = theImage 
    } 

    picker.dismiss(animated: true, completion: nil) 
} 
+0

Danke, das ist ein guter Ansatz. Keine Notwendigkeit, zusätzliche Funktionen aufzurufen, wenn wir das ImageView aktualisieren wollen –