选择UITableView上的所有单元格

时间:2016-01-26 03:46:25

标签: ios objective-c uitableview

我尝试使用编辑按钮选择表格中的所有单元格。我一直想弄明白我做错了什么。这是我的代码。我基本上循环遍历各个部分,然后遍历行数。无论我做什么,它都没有设置选择每个细胞。我怎么做到这一点?

@property (strong, nonatomic) IBOutlet UITableView *caseDataTableView;

@synthesize segmentControl,caseDataTableView,IndicationView,procedureView,indicationScrollView,procedureScrollView,segmentControllView,segmentControllios6;


- (IBAction)editButtonTapped:(id)sender {

    for (int i = 0; i < self.caseDataTableView.numberOfSections; i++) {
        for (NSInteger r = 0; r < [self.caseDataTableView numberOfRowsInSection:i]; r++) {
             UITableViewCell *cell = [self.caseDataTableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:r inSection:i]];
             [cell setSelected:YES];
        }
    }
}

3 个答案:

答案 0 :(得分:2)

您可以使用for循环

- (IBAction)editButtonTapped:(id)sender 
{
   for (int i = 0; i < self.tableView.numberOfSections; i++) 
   {
       for (int j = 0; j < [self.tableView numberOfRowsInSection:i]; j++)    
       {
        [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:j inSection:i]
                                    animated:NO
                              scrollPosition:UITableViewScrollPositionNone];
       }
   }
}

答案 1 :(得分:0)

您可以选择一个单元格调用表视图的selectRowAtIndexPath方法:

[caseDataTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop];

答案 2 :(得分:0)

我遇到的问题是两件事。第一个是editButtonTapped方法不正确。

- (IBAction)editButtonTapped:(id)sender {

for (int i = 0; i < self.caseDataTableView.numberOfSections; i++) {
    for (NSInteger r = 0; r < [self.caseDataTableView numberOfRowsInSection:i]; r++) {
        [self tableView:caseDataTableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:r inSection:i]];
    }
}}

下一个问题是当我进行循环时,didSelectRowAtIndexPath方法向下滚动。它最终会下到前一个循环中的最后一个单元格。我在didSelectRowAtIndexPath方法中输出了这段代码。

[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]

在我的情况下设置scrollPosition会清除选择,这就是删除它的原因。