我认为这是一个简单的问题,但我无法找到解决方案。
我有一个静态UITableView
,有两个静态cells
(浅色和深色)。
当用户选择其中一个单元格时,我会显示带有自定义图像的accessoryView。当用户选择另一个单元格时,我希望第一个单元格取消选择并删除自定义的accessoryView,并将其提供给secondCell。我希望这可以根据用户选择的单元格继续执行此操作。
同样重要的是,我需要确保选择"选择" cell在整个视图控制器的重新加载过程中维护accessoryView(使用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;
}
从一个单元格中删除附件视图到另一个单元格,以及如何在应用程序的整个生命周期中保持这一点,我们真的很感激。
谢谢
答案 0 :(得分: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;
}