0

我有一个动态的 UITableView。在第一部分的第一行,我有一个 segmentedControll(所有原型单元格、子类化和委托给 UITableViewController)。使用此分段控件,我希望在同一部分上显示另外一行。我要做的是有一个条件numberOfRowsInSection,然后当点击 SegmentedControl 时,它会触发以下内容:

  if (cellPath.section==0 && cellPath.row==1) {

        if (segmentedCell.segmentControl.selectedSegmentIndex==0) {

            reverse=NO;

           [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];

        }else if (segmentedCell.segmentControl.selectedSegmentIndex==1){

            reverse=YES;

            [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];

 }

}

它以某种方式起作用,但问题是 SegmentedControl 也会在其初始状态下重新加载,您可以想象其余部分。

关于如何解决这个问题的任何想法?我也尝试过 reloadRowsAtIndex...,但不起作用(我确实放了 begin/end )。

提前致谢!

4

1 回答 1

0

当您重新加载表格时,单元格被“重用”。所以每个单元都不会存储状态,而是依赖另一个类(委托)来保存状态。因此,如果您希望保持分段控件的状态,则将其值存储在表视图的委托中,然后确保每次在 cellForRowAtIndexPath 中将该值设置为分段控件的索引路径。

于 2012-04-25T18:46:16.933 回答