2016-09-26 4 views
0

Ich habe ein Problem mit dem PHCachingImageManager, wie kann ich Tausende von Bildern in meiner benutzerdefinierten Sammlung Ansicht behandeln?holen Sie alle Bilder aus der Foto-Bibliothek mit Fotorahmen

Mein Code in ViewWillAppear ist wie folgt.

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 

    for i in 0..<phasset.count - 1 { 
     let getAsset = phasset[i] 
     catchingImage.startCachingImages(for: [getAsset], targetSize: CGSize(width:125,height:125), contentMode: .aspectFit, options: nil) 

    } 

} 

Und mein Code in der CellForIrem in der Sammlungsansicht ist wie folgt.

Aber ich bekomme auch das Speicherproblem, wenn ich alle Bilder aus der Fotobibliothek laden.

Und wenn ich die Bilder auf 100,0 X 100,0 Größe ändern seine Arbeit gut, aber wenn ich jedes Bild im Dateisystem (NSFileManager) speichern ich Bild speichern nicht gut, habe keine Auflösung und keine gute Qualität bitte eine Möglichkeit, dieses Problem zu lösen Alle Bilder ohne Speicher Warnung

Vielen Dank.

Antwort

0

Sie müssen zwei verschiedene API verwenden, um Ihr Problem zu beheben. Während auf die Zelle Rendern des catchinImage api verwenden, wie Sie oben

catchingImage.requestImage(for: phasset[indexPath.row], targetSize: CGSize(width:100,height:100), contentMode: .aspectFill, options: nil) { (img, nil) in 
    cell?.ImageView.image = img! 
} 
erwähnt

Aber wenn es um das Bild zu Speichern kommt zu Dateisystem Sie PHImageManager statt catchingmanager

let options = PHImageRequestOptions() 
options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat 
options.networkAccessAllowed = YES //download from iCloud if required 

PHImageManager.defaultManager().requestImageDataForAsset(phasset[indexPath.row], options: options) { (data, _, _, _) in 
    let retrievedData = NSData(data: retrievedCFData) 
    retrievedData.write(toFile:filepath atomically:NO) 
} 
+0

danke sehr viel mein Freund verwenden sollten es ist Arbeit dann, wenn ich es die Bilder anzeigen muss, die ich es im Dateisystem speichern, muss ich Bilder ändern, ist das richtig? –

Verwandte Themen