首先:我知道关于这个问题有成千上万的问题,并且肯定在其中一个问题得到了解答。但经过几个小时的搜索,我没有找到解决问题的答案......
我有一个CollectionViewController(在容器内)和一个CollectionViewCell。在Cell内部有一个imageView。必须使用CollectionViewController中的按钮更改imageView的图像。
这是我的代码:
class essenCell: UICollectionViewCell {
@IBOutlet weak var Bild: UIImageView!
}
(细胞)
class essenCollectionViewController: UICollectionViewController {
[...]
@IBAction func xyz(sender: UIButton!) {
//following: the line with the error (unexpectedly found nil while unwrapping an Optional value)
essenCell().Bild.image = UIImage(named: "erster")
}
}
(CollectionViewController)
首先我认为我可以将Button连接到Cell和Controller,这在理论上有效,但在我的具体情况下不起作用。 图像更改发生在if-Loop(我的控制器内部)内,它引用了parentViewController。因为我不能在Cell中使用这个引用,所以我需要按钮功能在Controller中。
请帮助我!
答案 0 :(得分:0)
collectionViewCell
的所有设置都应在cellForItemAtIndexPath
中完成。
var buttonPressed = false
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("reuseCell", forIndexPath: indexPath) as! essenCell
if buttonPressed {
cell.Bild.image = UIImage(named: "erster")
} else {
cell.Bild.image = UIImage(named: "placeHolder")
return cell
}
@IBAction func xyz(sender: UIButton!) {
buttonPressed = true
collectionView?.reloadData()
}