UITableViewCellAccessoryCheckmark多个选择/检测哪些小区选择?(UI

2019-10-18 11:38发布

我已经启用,显示的UITableView细胞与UITableViewCellAccessoryCheckmark选择一个UITableView。 我想,让用户选择多个单元格,以自己的喜好和当他们的完成后,按“完成”按钮。

然而,当按下“完成”按钮的情况下,我需要能够仅向所选对象从所述的UITableView阵列添加到一个单独的阵列。

cell.accessoryType = UITableViewCellAccessoryCheckmark;

总结一下:用户可以选择尽可能多的细胞,因为他们想要。 完成后,它们按一个UIButton然后仅增加所选择的细胞到另一阵列。

提前谢谢你的帮助!

更新:

   -(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [self.setupTable cellForRowAtIndexPath:indexPath];

    [self.selectedCells removeObject:[self.setupFeeds objectAtIndex:indexPath.row]];
    cell.accessoryType = UITableViewCellAccessoryNone;

    [self.setupTable deselectRowAtIndexPath:indexPath animated:YES];
}

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self.setupTable cellForRowAtIndexPath:indexPath];

    [self.selectedCells addObject:[self.setupFeeds objectAtIndex:indexPath.row]];
    cell.accessoryType = UITableViewCellAccessoryCheckmark;


}

Answer 1:

你的问题不涉及UITableViewCellAccessoryUITableView这样的标题有些误导。

如果我是你,我会持有NSMutableArray选定单元格作为一个实例变量或财产。

@property (nonatomic, strong) NSMutableArray *selectedCells;

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Maybe some validation here (such as duplicates etc)
    ...
    [self.selectedCells addObject:indexPath];

}

然后完成按下时,你可以检查此属性,查看选定的细胞。

更新:

//Retrieve cell
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

//UITableViewCell has a textLabel property replace "yourLabel" with that if you have used it. Otherwise you can identify the label by subclassing tableviewcell or using tags.
[self.selectedCells addObject:cell.yourLabel.text]; 

//Then if cell is reselected

[self.selectedCells removeObject:cell.yourLabel.text];


文章来源: UITableViewCellAccessoryCheckmark multiple selection/detect which cells selected?