为什么启用UITableView.allowsMultipleSelection时不显示复选标记?

Chr*_*isP 8 objective-c uitableview

我在我设置的iOS5.1应用程序中有一个UITableView

self.tableView.allowsMultipleSelection=YES;
Run Code Online (Sandbox Code Playgroud)

Apple文档指出"当此属性的值为YES时,在每个被点击的行旁边放置一个复选标记.再次点击该行会删除复选标记."

我可以选择多行,因为背景设置为蓝色.但是,不显示任何复选标记.复选标记是否需要在didSelectRowAtIndexPath中如下所示进行设置,因为我使用的是自定义UITableViewCells?

cell.accessoryType = UITableViewCellAccessoryCheckmark;
Run Code Online (Sandbox Code Playgroud)

dal*_*iam 5

我在uitableviewcell子类中手动执行复选标记.您将不得不在didSelectRowAtIndexPath中手动执行UITableViewCellAccessoryCheckmark并跟踪选择哪一个.我会推荐这样的东西:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell* cell = [tableview cellAtIndex:indexPath];
    if(cell.accessoryType == UITableViewCellAccessoryCheckmark)
       cell.accessoryType = UITableViewCellAccessoryCheckmark;
    else
     cell.accessoryType = UITableViewCellAccessoryNone;
}
Run Code Online (Sandbox Code Playgroud)

注意:我没有测试这个,但应该给你基本的想法.如果您有任何疑问,请告诉我.您是否尝试使用默认的uitableviewcell并查看它是否带有复选标记?我不认为子类会有问题,只要你不在子类中修改.