我需要在活动中获得并显示照片库中最近拍摄的3张照片,viewDidload而无需任何点击。
viewDidload
完成此步骤后,滚动时,我应该以3 x 3的方式拍摄其他照片ScrollView。
ScrollView
您知道快速执行此操作的正确方法吗?谢谢。
这是使用Photos适用于iOS 8+设备的框架的解决方案:
Photos
import Photos class ViewController: UIViewController { var images:[UIImage] = [] func fetchPhotos () { // Sort the images by descending creation date and fetch the first 3 let fetchOptions = PHFetchOptions() fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending: false)] fetchOptions.fetchLimit = 3 // Fetch the image assets let fetchResult: PHFetchResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: fetchOptions) // If the fetch result isn't empty, // proceed with the image request if fetchResult.count > 0 { let totalImageCountNeeded = 3 // <-- The number of images to fetch fetchPhotoAtIndex(0, totalImageCountNeeded, fetchResult) } } // Repeatedly call the following method while incrementing // the index until all the photos are fetched func fetchPhotoAtIndex(_ index:Int, _ totalImageCountNeeded: Int, _ fetchResult: PHFetchResult<PHAsset>) { // Note that if the request is not set to synchronous // the requestImageForAsset will return both the image // and thumbnail; by setting synchronous to true it // will return just the thumbnail let requestOptions = PHImageRequestOptions() requestOptions.isSynchronous = true // Perform the image request PHImageManager.default().requestImage(for: fetchResult.object(at: index) as PHAsset, targetSize: view.frame.size, contentMode: PHImageContentMode.aspectFill, options: requestOptions, resultHandler: { (image, _) in if let image = image { // Add the returned image to your array self.images += [image] } // If you haven't already reached the first // index of the fetch result and if you haven't // already stored all of the images you need, // perform the fetch request again with an // incremented index if index + 1 < fetchResult.count && self.images.count < totalImageCountNeeded { self.fetchPhotoAtIndex(index + 1, totalImageCountNeeded, fetchResult) } else { // Else you have completed creating your array print("Completed array: \(self.images)") } }) } }