2011-05-07 57 views
1

我有一個小問題:的UITableViewController取消編輯模式的動畫調用表reloadData]內(無效)setEditing時

我做了我setEditing方法:

- (void)setEditing:(BOOL)editing animated:(BOOL)animate { 
    [super setEditing:editing animated:animate]; 
    [mainTableView reloadData]; 
} 

我用reloadData調用:cellForRowAtIndexPath,然後,如果表處於編輯模式,我會改變我的單元格的外觀(例如隱藏一些標籤);

問題是,當我調用[mainTableView reloadData]編輯動畫(紅圈從左到右滑動,我的單元格向右滑動)不存在。如果不調用它,一切正常,但我無法自定義我的單元格,因爲cellForRowAtIndexPath不會再次調用。

任何建議,使其工作?

謝謝!

回答

1

也許你會嘗試與[的tableView beginUpdates][的tableView endUpdates]更新您的桌子嗎?你需要重新加載所有的單元格還是隻有一部分?

編輯:下面是重裝的所有單元格的代碼:

[tableView beginUpdates]; 
NSMutableArray *updatedPaths = [NSMutableArray array]; 
for (NSNumber *row in yourArray) { 
    NSIndexPath *updatedPath = [NSIndexPath indexPathForRow:[row intValue] inSection:0]; 
    [updatedPaths addObject:updatedPath]; 
} 
[tableView reloadRowsAtIndexPaths:updatedPaths withRowAnimation:UITableViewRowAnimationFade]; 
[tableView endUpdates]; 

yourArray是存儲您的cell.textLabel價值觀或類似的東西NSArray的實例...

+0

其實我只需要更新可見單元格,因爲未顯示的單元格將在需要時調用cellForRowAtIndexPath。我試圖在beginUpdates和endUpdates之間插入reloadData,但它沒有奏效。任何其他的消化?謝謝 – PGstudio 2011-05-07 11:23:22

+0

它不這樣工作。我用代碼示例更新了我的答案。 – akashivskyy 2011-05-07 13:17:04

+0

嘿Kashiv,它與你的榜樣運作良好。無論如何,動畫是默認編輯單元格的嗎?幻燈片的權利?我嘗試過所有類型的動畫,但沒有一個看起來像是Slide來製作一個動畫。謝謝 – PGstudio 2011-05-07 16:38:28

相關問題