gpt4 book ai didi

ios - Swift Collection View 单元格选择的图像需要在预览 Imageview 上显示完整尺寸

转载 作者:行者123 更新时间:2023-11-29 05:37:38 49 4
gpt4 key购买 nike

我的场景是,我尝试使用 PhotoKit 创建底部水平 Collection View 照片库单元格图像。在这里,如果我选择任何 Collection View 单元格图像,我将在预览 Imageview 上显示它(它现在正在工作)。在这里,我的问题是我使用 .aspectFill 设置小尺寸作为底部水平 Collection View 单元格,但预览图像我需要显示完整尺寸,这意味着没有尺寸限制的精确完整照片。如果我选择它,它会在预览 Imageview 上显示非常小的尺寸和模糊的图像。原因是我使用缩略图 120 高度和宽度,并将相同的图像分配给预览 ImageView ,所以现在我无法看到照片库中的实际全尺寸图像。如何解决这个问题?

下面是我使用的代码

// MARK: - Make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! GalleryCollectionViewCell
let asset = images[indexPath.row]
let manager = PHImageManager.default()
if cell.tag != 0 {
manager.cancelImageRequest(PHImageRequestID(cell.tag))
}
cell.tag = Int(manager.requestImage(for: asset,
targetSize: CGSize(width: 120.0, height: 120.0),
contentMode: .aspectFill,
options: nil) { (result, _) in
cell.picImage?.image = result
})
return cell
}

// MARK: - UICollectionViewDelegate protocol
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

let selectedCell = collectionView.cellForItem(at: indexPath) as! GalleryCollectionViewCell
previewImage.image = selectedCell.picImage.image //Here I am assigning cell Image to Preview Imageview

selectedIndex = indexPath.row
self.collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
self.collectionView.layoutSubviews()
self.collectionView.reloadData()
}

Example

最佳答案

您必须通过指定预览尺寸或使用 PHImageManager.deafult().PHImageManagerMaximumSize 的属性来请求 PhotoKit 提供适当或原始尺寸的图像。确保 contentMode 为 default 或 apsectFit。

https://developer.apple.com/documentation/photokit/phimagemanagermaximumsize

https://developer.apple.com/documentation/photokit/phimagemanager/1616964-requestimage

关于ios - Swift Collection View 单元格选择的图像需要在预览 Imageview 上显示完整尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56881962/

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