已选择Swift集合视图单元格图片需要在预览Imageview上显示完整尺寸

时间:2019-07-04 06:39:16

标签: ios swift

我的情况是,我尝试使用PhotoKit创建底部水平的收藏夹视图照相馆单元格图像。在这里,如果选择任何集合视图单元格图像,则会在预览Imageview上显示它(正在运行)。在这里,我的问题是我使用.aspectFill为底部水平集合视图单元格设置了较小的尺寸,但是预览图像需要显示完整尺寸,这意味着没有尺寸限制的确切完整照片。如果我选择它,它在预览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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

要在预览图像中显示非常模糊的图像,请尝试更改图像的内容模式以适合宽高比。这可能会解决图像模糊的问题