在 UITableView 上重新加载的 UISegmented 控件



我有一个动态的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 也会在其初始状态下重新加载,您可以想象其余部分。

关于如何解决此问题的任何想法?我也尝试过重新加载RowsAtIndex...,但不起作用(我确实放了开始/结束)。

提前感谢!

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

最新更新