2012-04-24 112 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