当我选择一行UITableView时,它会变成绿色(自定义),但当我选择另一行时,先前选择的行将不会保持绿色。每次选择行后,我都会重新加载表。我已经尝试过了
NSIndexPath *selection = [mainTable indexPathForSelectedRow];
[mainTable selectRowAtIndexPath:selection animated:NO
scrollPosition:UITableViewScrollPositionNone]; 但是使用这段代码,我只能得到最近选中的行绿色( selected ),我搜索了一下,发现了一些建议,其中大多数建议将选中行的索引值存储在一个数组中,并在以后使用这个数组,我已经尝试过了,但它不起作用。任何其他建议或示例代码将不胜感激。
发布于 2012-11-16 14:53:28
执行以下操作:
mainTable.allowsMultipleSelection = YES;从
allowsMultipleSelection
一个布尔值,它确定用户是否可以在编辑模式之外选择多行。
@property(nonatomic) BOOL allowsMultipleSelection
讨论
此属性控制是否可以在编辑模式之外同时选择多个行。当此属性的值为“YES”时,将在点击的每一行旁边放置一个复选标记。如果调用indexPathsForSelectedRows,则可以获得标识所选行的索引路径。
此属性的默认值为NO。
发布于 2012-11-16 14:52:35
更新:
要实现这一点,更好的方法是从UITableViewDelegate方法tableView:willDeselectRowAtIndexPath:中为您希望保持选中状态的indexPath返回nil。
不要使用以下命令:
尝试以下add UITableViewDelegate方法:
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
//use this for row u want to prevent to deSelect
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}https://stackoverflow.com/questions/13411639
复制相似问题