如何将UICollectionViewCell中的图像显示给另一个UIImageView? (斯威夫特3)

时间:2017-10-03 19:04:20

标签: ios swift uiimageview

这是我的视图控制器的样子:

Collection View Controller

UICollectionViewCell有自己的自定义类,其中包含用于图像视图的@IBOutlet。但是,每当我尝试在CollectionViewController上使用didSelectItemAt函数时,都无法识别图像视图插座。我尝试做的是当用户从集合视图中按下图像时,它将显示在bigImageView上(在集合视图之外)。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    let cell = collectionView.cellForItem(at: indexPath)

    bigImageView.image = cell.smallImageView.image

}

错误说:

  

"类型的值' UICollectionViewCell?'没有会员' smallImageView' "

我错过了什么?请赐教。提前谢谢!

3 个答案:

答案 0 :(得分:0)

在你的故事板中,你是否将UICollectionViewCell设置为“自定义类”,或者故事板是否只生成一个UICollectionViewCell对象,它没有你的smallImageView?

答案 1 :(得分:0)

您需要将您的单元格转换为正确的子类以访问smallImageView属性:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    guard let cell = collectionView.cellForItem(at: indexPath) as? YourSubclass else {
        return
    }

    bigImageView.image = cell.smallImageView.image
}

答案 2 :(得分:0)

在objective-c上尝试不起作用

import base64

#returned by gmail

gmail_data = {
 "size": 4596,
 "data": "JVBERi0xLjQKJf____8KMTMgMCBvYmoKPDwvTGVuZ3RoIDI0NzYKL1N1YnR5cGUgL1hNTAovVHlwZSAvTWV0YWRhdGEKPj4Kc3RyZWFtCjw_eHBhY2tldCBiZWdpbj0n77u_JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8-Cjx4OnhtcG1ldGEgeDp4bXB0az0iMy4xLTcwMSIgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgogIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI-CiAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICA8eG1wOkNyZWF0ZURhdGU-MjAxNS0xMC0yN1QwNjozMTo1OFo8L3htcDpDcmVhdGVEYXRlPgogICAgICA8eG1wOkNyZWF0b3JUb29sPk5pdHJvIFBybyA5ICAoOS4gMC4gNi4gMjApPC94bXA6Q3JlYXRvclRvb2w-CiAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE1LTEwLTI3VDA2OjMxOjU5WjwveG1wOk1vZGlmeURhdGU-CiAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMTAtMjdUMDY6MzE6NTlaPC94bXA6TWV0YWRhdGFEYXRlPgogICAgPC9yZGY6RGVzY3JpcHRpb24-CiAgICA8cmRmOkRlc2NyaXB0'

}

file_data = base64.urlsafe_b64decode(gmail_data['data'])

我得到白色背景图像