未select单元格时从UITableViewCell中删除附件视图并在重新加载视图之间进行维护
我有我认为是一个简单的问题,但我找不到解决办法。
我有一个静态UITableView
与两个静态cells
(光和黑暗)。
当用户select其中一个单元格时,我正在显示具有自定义图像的accessoryView。 当用户select另一个单元格时,我希望第一个单元格取消select并删除自定义的附件视图并将其提供给secondCell。 我希望这个不断做这取决于用户select哪个单元格。
同样重要的是,我需要确保“selected”单元在整个重载视图控制器的过程中(使用NSUserDefaults
)来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; }
任何协助将真正赞赏从附件视图从一个细胞和其他,以及如何保持这一贯穿整个应用程序的生命周期。
谢谢
在.h文件中创build一个属性
@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; }