我有一个集合视图,其中的单元格填充了图像&按钮(如果按下相关按钮,则将图像添加到图库(
(我需要一个用于全屏操作的didSelectItem委托方法,所以我不能将其用于添加操作(
我为每个单元格和单元格中的每个按钮分配了相同的标签,这样我就可以在按下按钮时读取标签。
现在我需要访问相关细胞的图像,但该图像的关键是什么?
我正在寻找类似的东西:
@IBAction func addFromCell(_ sender: UIButton) {
imagesArray.append(myCollectionView.cellForItem(at: sender.tag).imageView.image)
}
但这行不通。。
单元格中的图像是视图。这不是你想要的。永远不要将视图视为数据。你想要的是这是什么图像的数据。
问问自己:图像最初是如何进入细胞的?这是因为您将它放在了cellForItemAt:
实现中。你的cellForItemAt:
是怎么知道要把什么图像放进那个细胞的?它根据单元格的索引路径查看数据模型。
因此,当按下按钮时,您只需要知道该按钮单元格的索引路径,现在您只需在模型中查找图像即可。这很容易找到,因为你知道这是什么单元格,也知道它占据了什么索引路径。
您可以使用闭包访问集合视图单元格内的按钮。