gpt4 book ai didi

ios - Collection View 图像数组

转载 作者:行者123 更新时间:2023-11-28 22:40:16 27 4
gpt4 key购买 nike

新手问题。我有一个自定义的 UICollectionView 单元格,每个单元格中都有 UIImageUIButton。我需要有一个 UIImages 数组,这些数组将在单元格的复选框被点击到“选中”状态后被填充(自定义 UIButton 与适当的选中/未选中图像连接到 IBAction 并更改内部单元格的 BOOL 和复选框状态图像)。我不能使用 -didSelectItemAtIndexPath: 进行标记,因为我正在使用它来预览单元格照片。第一个想法是将单元格图像添加到 NSMutableArray,方法是将复选框点击到“已选中”状态,但是如果用户想要取消选中复选框,我无法跟踪我需要从数组中删除的 UIImage 到底是什么。这样做最痛苦的方法是什么?

PS:这是我连接到复选框的方法的列表

- (void)theCheckboxTapped:(UIButton*)sender
{
cell = (CustomCell *)sender.superview.superview;
if (cell)
{
if ([cell isSelected] == NO)
{
UIImage *img1 = [UIImage imageNamed:@"checked.png"];
[[(CustomCell *)cell checkboxSign] setImage:img1 forState:UIControlStateNormal];
}

if ([cell isSelected] == YES)
{
UIImage *img2 = [UIImage imageNamed:@"unchecked.png"];
[[(CustomCell *)cell checkboxSign] setImage:img2 forState:UIControlStateNormal];
}
cell.isSelected =! cell.isSelected;
}
}

第一个想法是制作单元格数组并检查此单元格的 BOOl 是否等于 YES 或 NO 并将适当的单元格图像添加到数组

最佳答案

为了解决这个问题,有很多解决方案。但是我正在解释的方法很简单,但是它比其他方法消耗更多的内存。

步骤:-

  1. 创建两个具有容量单元格计数的数组。添加此数组中的所有图像,并在未选择单元格时最初仅添加 bool 值 false。为此,您可以添加 0。

    NSMutableArray *imageArray = [[NSMutableArray alloc]init];

    NSMutableArray *boolArray = [[NSMutableArray alloc]init];

  2. 当您选中任何单元格按钮时,然后将 boolArray 数组中的 0 替换为 1,反之亦然。

  3. 并重新加载表。在重新加载期间,如果该位置的第二个数组中的值为 0,则无需从第二个中选择图像,如果值为 1,则选择图像。

要更改值,您可以替换 nsmutablearray 的 ObjectAtIndex 方法。

编辑:不需要像上面那样做。一种更简单的解决方案是根据您在此处的代码。如我所见,您可以获得手机。因此,您可以为 imageView 设置标签,并且根据标签,您还可以获得要在其中添加图像的单元格的 ImageView 。 为此创建 imageArray 和其中的所有图像。现在添加像这样的图像:

 if cell.selected = True;
cell.imageView.image = [imageArray objectAtIndex:@"Cell's tage here or buttons tag here which is equal to indexPath.row"];
else
cell.imageView.image = @"Default image or no image here".

关于ios - Collection View 图像数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733815/

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