2012-04-24 40 views
0

我有一个动态的UITableView。在第一部分的第一行,我有一个segmentedControll(一切都有原型单元格,继承和委托给UITableViewController)。有了这个分段控制,我想要在同一部分出现一个额外的行。我要做的就是有一个条件对numberOfRowsInSection,然后在SegmentedControl被窃听它触发了以下内容:UISegmented控件正在重新加载UITableView

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

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

+0

是的,就是这样。非常感谢! – Marcal 2012-04-25 20:13:40