我有一个UITextView,其中填充了来自UITableView( tvServices )的数据;当用户点击UITableView中的一行时,我将该单元格的内容移动到UITextView,之后UITextView的内容存储在CoreData存储中。
当用户选择要更新的记录时,我将存储的UITextView的内容移回UITextView。当用户点击UITextView时,我将整个UITableView显示为UIPopover,UITextView的内容在UITableView中标有复选标记(AccessoryCheck)。
不幸的是,这不是我设计的方式......没有得到任何检查。这是我的代码(这是概念证明 - 我在其中检查UITableView中的每一行以确保它可以完成)。 globalServicesArray 是UITableView单元格的数据源:
for (int i = 0; i < sharedServicesArray.globalServicesArray.count; i++) {
NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:0];
UITableViewCell *cell = [tvServices cellForRowAtIndexPath:path];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
我希望这是有道理的;如果有更好的方法,我可以提出建议......否则我做错了什么?
答案 0 :(得分:0)
假设只能编辑一个单元格,可以尝试一下吗?比如,将索引路径存储在类级iVar / Property中。 selectedIndex并重新加载单元格
//To hold the index paths
NSMutableArray *reloadArray = [NSMutableArray array];
if (self.selectedIndex)
{
//if already selected deselect
[reloadArray addObject:self.selectedIndex];
}
for (int i = 0; i < sharedServicesArray.globalServicesArray.count; i++) {
NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:0];
[reloadArray addObject:path];
}
[tvServices reloadRowsAtIndexPaths:reloadArray withRowAnimation:UITableViewRowAnimationNone];
在索引路径的行的单元格中检查索引路径,如果与索引
匹配则检查设置附件if (self.selectedIndex &&
self.selectedIndex.row == indexPath.row &&
self.selectedIndex.section == indexPath.section)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}