gpt4 book ai didi

ios - 如何在 Swift 上将照片库显示为 UICollectionView 或 Assets 网格

转载 作者:行者123 更新时间:2023-11-28 05:41:17 25 4
gpt4 key购买 nike

生成类似于 Twitter 上传页面的最佳方法是什么?在该页面中,显示大约 10 张图片库图片供用户选择一张?

下面是我正在尝试做的事情的图片。

这是我到目前为止所做的。但是,当我运行应用程序时它不显示。

import photos

class UploadPostVC: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
var imageArray = [UIImage]()

@IBOutlet weak var showPhotosCollectionView: UICollectionView!

override func viewDidLoad() {
super.viewDidLoad()

grabPhotos()
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return imageArray.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)

let imageView = cell.viewWithTag(1) as! UIImageView

print("wassup")
imageView.image = self.imageArray[indexPath.row]

return cell
}

func grabPhotos(){
let imgManager = PHImageManager.default()

let requestOptions = PHImageRequestOptions()
requestOptions.isSynchronous = true
requestOptions.deliveryMode = .highQualityFormat

let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
let fetchResult : PHFetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions)
if fetchResult.count > 0 {
for i in 0..<fetchResult.count{

//Used for fetch Image//
imgManager.requestImage(for: fetchResult.object(at: i) as PHAsset , targetSize: CGSize(width: 100, height: 100), contentMode: .aspectFill, options: requestOptions, resultHandler: {
image, error in
let image = image! as UIImage
self.imageArray.append(image)
self.showPhotosCollectionView.reloadData()
print ("appended images")
})

self.showPhotosCollectionView.reloadData()

}

}
else {
print("you got no phots")
self.showPhotosCollectionView.reloadData()
}
}

what I'm trying to do

最佳答案

您应该设置 Collection View 的delegatedataSource。只需更改您的 viewDidLoad 函数:

override func viewDidLoad() {
super.viewDidLoad()
self.showPhotosCollectionView.delegate = self
self.showPhotosCollectionView.dataSource = self
grabPhotos()
}

关于ios - 如何在 Swift 上将照片库显示为 UICollectionView 或 Assets 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56624661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com