【发布时间】:2014-09-15 13:17:13
【问题描述】:
我正在尝试实现一个可选择的列表视图。列表视图包含一些名称。您可以选择或取消选择多个名称。如果选择了名称,则单元格样式将更改为UITableViewCellAccessoryCheckmark。
但是现在我有一个问题。在取消选择名称之前,您必须在单元格上按多次。这是因为didSelectRowAtIndexPath 总是首先被调用。
// cellForRowAtIndexPath function
if ([assignedPlayers containsObject:player.persistentData])
{
[cell setSelected:true];
[cell setAccessoryType: UITableViewCellAccessoryCheckmark];
}
cell.textLabel.text = [NSString stringWithFormat:@"%@", player.persistentData.name];
return cell;
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
[[tableView cellForRowAtIndexPath:indexPath] setSelected:FALSE];
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryType: UITableViewCellAccessoryNone];
[self.eventController removePlayerFromEvent:_editingEvent :[self.playerController getPlayerAtPosition:indexPath.row]];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[[tableView cellForRowAtIndexPath:indexPath] setSelected:TRUE];
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryType: UITableViewCellAccessoryCheckmark];
[self.eventController addPlayerToEvent:_editingEvent :[self.playerController getPlayerAtPosition:indexPath.row]];
}
现在我不知道如何解决这个问题。
感谢您的帮助。
【问题讨论】:
-
您的开头段落指出可以选择一个名称。这与您最后的更新相冲突。
标签: ios objective-c uitableview selection