我如何测试某个表格视图单元格是不是具有某个图像?

Posted

技术标签:

【中文标题】我如何测试某个表格视图单元格是不是具有某个图像?【英文标题】:How can i test if a certain table view cell has a certain image?我如何测试某个表格视图单元格是否具有某个图像? 【发布时间】:2011-10-08 19:07:50 【问题描述】:

在我的应用中,您可以添加和删除单元格。我只希望用户能够为每个单元格添加 1 个。那么,有没有办法测试一个单元格是否已经有某个图像?

喜欢:

if(myTableView.cell.imageView == @"image.png")
// do something

请帮忙!谢谢

编辑

此按钮允许我们将单元格和图像添加到新单元格中。

  - (IBAction)outlet1:(id)sender 
if (cart.cell.tag == 1) 
    UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"You have already added this" message:@"Go to My Cart and add more if you like" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil, nil];
    [alert show];
    [alert release];

else 
[cart.cells addObject:@"1"];
 [[cart.cells lastObject] setTag:1];
UIImage * myImage = [UIImage imageNamed:@"paddle1.png"];
[cart.imageArray addObject:myImage];

所以我基本上想测试这个单元格是否已经添加了!

【问题讨论】:

你能显示设置或添加图像到单元格的代码吗? 是的,我会更新我的问题!感谢您的回复! 您的问题的性质揭示了您的应用设计存在缺陷。 正在创建这些单元格。 正在设置这些单元格的图像。因此,在某一时刻你知道哪个图像进入了单元格。 你为什么忘记了这个?您不应该在视图中存储模型信息;你的观点应该反映你的模型。因此,这个问题的真正答案是:重构您的应用程序,以便您可以在其他地方记住这些信息。不要依赖单元格为您记住它。 如何分配cart.cell?无论如何,您不应该检查 cart.cell 的标签,您应该检查上面代码中的 [cart.cells lastObject] 的标签。 分配cart.cell是什么意思?就像我如何分配它的文本?好吧所以你的意思是测试[cart.cells.tag lastObject];?还是我忽略.tag?谢谢大家的帮助!!:D 【参考方案1】:

如果您只有几个不同的图像而不需要检查图像,那么您应该为与图像对应的单元格设置一个标签编号,使用 [单元设置标签:(int)];所以 paddle2.png 可以是 2 并且 paddle1.png 可以是 1 并且你会 [cell setTag:1] for paddle1.png 。比测试时只需检查标签:

如果([单元格标记] == 1) //做点什么

这是您的按钮的代码:

   - (IBAction)outlet2:(id)sender 
[cart.cells addObject:@"1"];
[[cart.cells lastObject] setTag:2];
UIImage * myImage = [UIImage imageNamed:@"paddle2.png"];
[cart.imageArray addObject:myImage];

这里是测试代码:

if(myTableView.cell.tag == 2)
// do something
  

【讨论】:

感谢您的帮助! :) 好的,我添加了这个,但它不起作用。我正在尝试添加一个单元格并测试该单元格是否已稍后在应用程序中添加。因此,如果我更新我的问题,请您看一下并告诉我是否正确?应用程序现在崩溃了?谢谢:) 您在上面重写的代码没有意义...我知道 cart.cells 是一个数组,但 cart.cell 是什么? 正确的 cart.cells 是数组。而 cart.cell 只是处理表格视图单元格。 你是如何分配 cart.cell 的? 还有。请注意我上面的评论和 Dave DeLong 的评论【参考方案2】:

据我所知,您无法检查图像名称,但您可以保留存储在单元格中的图像名称数组。然后你可以检查行的索引和图像数组名称的索引,看看它是否是你要找的:

if ([[[myimages objectAtIndex:i] valueForKey:@"ImageName"] isEqualToString:@"image.png"])

   // you got what you were looking for,

'i' 上面将是 indexPath.row 值 - 我假设您正在对委托方法 didSelectRowAtIndexPath 进行检查。

【讨论】:

好的,如果我已经将图像添加到数组中,我该如何测试它?谢谢大佬回复! :)

以上是关于我如何测试某个表格视图单元格是不是具有某个图像?的主要内容,如果未能解决你的问题,请参考以下文章

带有透明单元格并显示背景图像的 Swift 表格视图

如何在表格视图和单元格之间添加图像

如何使用 Xcode 7 UI 测试检查表格视图中的单元格是不是可见?

如何编写 UI 测试来测试单击 UITableView 中的第一个单元格时图像是不是存在?

Swift UI 测试,如何检查单元格是不是有图像视图

如何使表格视图内的单元格开始向下?