我在表格视图中显示答案我希望如果用户选择任何一个单元格应该获得带文本方面的选中标记图像,如果他从第一个单元格选中标记时间选择另一个单元格,则应删除并显示在所选单元格上/ p>
答案 0 :(得分:2)
首先在viewController .h文件中添加一个属性
@property (nonatomic, strong) NSIndexPath *theSelectedIndexPath;
并在您的.m文件中合成
@synthesize theSelectedIndexPath = _theSelectedIndexPath;
然后在cellForRowAtIndexPath
做
if (indexPath.row == self.theSelectedIndexPath.row) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
不要忘记更新theSelectedIndexPath
didSelectRowAtIndexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.theSelectedIndexPath = indexPath;
}
答案 1 :(得分:1)
在.h文件中创建变量
UItableviewCell *selectedCell;
在didSelectRow方法中,从已保存的单元格中删除选择并将新单元格另存为:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
if (selectedCell) {
selectedCell.accessoryType = UITableViewCellAccessoryNone;
}
UItableviewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if(cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
selectedCell = cell;
}
为防止可重复使用的单元出现问题,您可以在.h文件中创建NSIndexPath变量而不是UITableViewCell:
NSIndexPath *selectedCellIndexPath;
并更改didSelectRow方法:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
[tableView scrollToRowAtIndexPath:selectedCellIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:selectedCellIndexPath];
selectedCell.accessoryType = UITableViewCellAccessoryNone;
UItableviewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if(cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
selectedCellIndexPath = indexPath;
}
答案 2 :(得分:0)
selectedRow
tableviewDidSelectRow
中设置int到所选行。tableviewDidSelectRow
制作[tableView reloadData];
在tableView:(UITableView *)tableView cellForRowAtIndexPath
中执行以下操作:
if (indexPath.row == selectedRow)
cell.accessoryView = checkMark;
else
cell.accessoryView = nil;
醇>
其中“checkMark”是您的复选标记imageview的插座(我使用自定义复选标记)
多田!