我的應用程序的UI類似於Phone.app-> Latest:UITableView和導航欄中的UISegmentedControl。我想要做的是在選擇第一部分的情況下顯示全套數據,如果選擇了第二部分,則顯示過濾的數據集。過濾分段UITableView
當用戶選擇UISegmentedControl中的第二項時,我從表視圖中刪除特定的行。這裏是代碼:
[tableView beginUpdates];
NSMutableArray *indexPaths = [NSMutableArray array];
/// ... fill up indexPaths with row indexes
[tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
[tableView endUpdates];
上面的代碼工作正常,除了一個嚴重的問題:性能。刪除2200行中的1500個大約需要20秒。這顯然是不可接受的。用動畫過濾表格視圖行的最佳方法是什麼?
iOS SDK文檔是否指定了建議的最大值在beginUpdates和endUpdates之間刪除/插入的行是否保持動畫順暢? – sgosha 2011-05-03 19:56:04
不是我知道關閉,但reloadData只關注表視圖中的可見單元格,這使得它更快。我相信你可以嘗試確切的數量,但它很可能會低於1500 – nduplessis 2011-05-03 20:06:43