Ich bin neu bei iOS dev und kann nicht herausfinden, wie man ein Bild in einem ImageView aus einem lokalen Verzeichnis lädt. Ich verwende imagePickerController, um ein Bild auszuwählen, seine Informationen abzurufen und diese Informationen dann zur Anzeige des Bildes in der imageView zu verwenden.Swift 3 lade Bild aus dem lokalen Verzeichnis
Hier ist der Code ist, das Bild und die Info-Wörterbuch zu holen:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
let imageUrl = info[UIImagePickerControllerReferenceURL] as! NSURL
let imageName = imageUrl.lastPathComponent
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let photoURL = NSURL(fileURLWithPath: documentDirectory)
let localPath = photoURL.appendingPathComponent(imageName!)!
imagesList.append(localPath)
picker.dismiss(animated: true, completion: nil)
}
Dann, und hier ist, wo ich für einige Hilfe bin auf der Suche, ich möchte entweder localPath oder imageUrl laden das Bild verwenden, in einem anderen imageView aber kann nicht herausfinden, wie. Ich versuchte
func changeImage(_ sender: Any) {
if imagesList.count > 0 {
let imageUrlPath = imagesList[indexList]
let urlString: String = imageUrlPath.absoluteString
imageView.image = UIImage(contentsOfFile: urlString)
indexList = (indexList + 1) % imagesList.count
}
}
Aber ich kann nicht etwas Arbeits haben. Irgendeine Idee, wie ich das erreichen kann?
Vielen Dank für Ihre Hilfe.
Sie müssen 'imageUrlPath.path' anstelle von' imageUrlPath.absoluteString' verwenden –
Danke für Ihre Hilfe. Ich habe keinen Fehler, aber das Bild wird nicht in der Bildansicht angezeigt. Wenn ich URLString drucke, enthält es nur "/asset.JPG" und ich denke nicht, dass das reicht. Was contentsOfFile enthalten soll: der gesamte Pfad (file: /// Benutzer/me/Library/Entwickler/CoreSimulator/Devices/BF7D44E4-26DD-43EE-5543-D7AB7654F8DC/data/Container/Data/Application/C9561694- 34E9-46AD-83AA-38F067557F86/Dokumente/Anlage.JPG)? Oder etwas wie "assets-library: //asset/asset.JPG? Id = 9A443DCB-EC44-42B8-8773-B597CF782EDD & ext = JPG" – radar
Drucken Sie den Pfad und überprüfen Sie, ob das Bild existiert oder nicht –