1

我有一个我认为是一个简单的问题,但我找不到解决方案。

我有一个UITableView带有两个静态cells(浅色和深色)的静态。

当用户选择其中一个单元格时,我将显示一个带有自定义图像的附件视图。当用户选择另一个单元格时,我希望第一个单元格取消选择并删除自定义附件视图,并将其提供给第二个单元格。我希望它根据用户选择的单元格连续执行此操作。

同样重要的是,我需要确保“选定”单元格在重新加载此视图控制器的整个过程中保持附件视图(使用NSUserDefaults)。

我该怎么做呢?我对iOS开发相当陌生。

这是我的 didSelectRow 中的一些代码:

 BOOL isSelected;

if (cell.isSelected) {
    UIImageView *dot = [[UIImageView alloc]initWithFrame:CGRectMake(165, 10, 14, 15)];
    dot.image=[UIImage imageNamed:@"check-white-hi.png"];
    [cell addSubview:dot];
    cell.accessoryView = dot;
    isSelected = YES;
}
else {
    cell.accessoryView = nil;
    isSelected = NO;
}

如果从一个单元格和另一个单元格中删除附件视图,以及如何在应用程序的整个生命周期中维护这一点,任何帮助都将不胜感激。

谢谢

4

1 回答 1

4

在您的 .h 文件中创建一个属性

@property (nonatomic,retain)NSIndexPath * checkedIndexPath ;

在你的 .m 文件中合成

@synthesize checkedIndexPath;

在您的 didSelectRowAtIndexPath 方法中编写此代码

if(self.checkedIndexPath)
{
   UITableViewCell* uncheckCell = [tableView
                                    cellForRowAtIndexPath:self.checkedIndexPath];
    uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if([self.checkedIndexPath isEqual:indexPath])
{
    self.checkedIndexPath = nil;
}
else
{
   UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
    self.checkedIndexPath = indexPath;
}
于 2014-03-31T13:23:39.387 回答