我有一个动态的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 ...,但是没有用(我确实把开头/结尾了。)
提前致谢!
答案 0 :(得分:0)
重新加载表格时,“重复使用”单元格。因此每个单元格都不会存储状态,而是依赖另一个类(委托)来保存状态。因此,如果您希望在分段控件上保持状态,则将其值存储在表视图的委托中,然后确保每次为其索引路径将该值设置为cellForRowAtIndexPath中的分段控件。