2012-03-16 58 views
2

使用iOS-5 UITableView允許多選,是否有任何快速的方式以良好的性能選擇(並高亮顯示)所有行?我正在談論超過數千行fetchedResultsController的數據。如何快速選擇iOS5中的所有行UITableView

我試過selectRowAtIndexPath:動畫循環,看起來對於大數據集來說不是個好主意。

另外我發現如果取消選擇所有行,tableview reloadData的性能會比deselectRowAtIndexPath更好:animated:在循環內部。這是清除選擇的安全方法嗎?

感謝

+0

也許這將有助於http://stackoverflow.com/questions/308081/is-it-possible-to-configure-a-uitableview-to-allow-multiple-selection – 2012-03-16 05:23:48

+0

別人了最近有一個類似的問題,但我沒有設法找到鏈接。通過迴避選擇問題解決了他的問題 - 如果您想對所有行執行某項操作,那麼爲其設置按鈕(例如「全部刪除」)可能更有意義。 – rickster 2012-03-16 06:09:06

回答

1

據我所知,你沒有任何其他posibility選擇行,只有selectRowAtIndexPath:

我想,你不應該在表格視圖中有這麼多的行,試着優化它。你真的需要這麼多行嗎?

+0

有這麼多行很好。 UITableView設計用於處理大量的行。 – 2013-02-05 09:19:22

+0

我同意。但行選擇不同意你 – 2013-02-06 02:19:14

0

我有同樣的問題,我有幾個單元格已經沒有創建。我必須全部選擇它們。 但是你無法到達未創建的單元格。所以我不能使用getTableViewCellForRowAtIndex:函數。

我有一個選擇的實體的解決方案,我把整個集合設置爲selectedcollection。 但我的問題是在UI上,我不得不向用戶展示它們。

所以我決定創建一個checkedXXXTableViewCell,並從XXXTableViewCell繼承這個類。 (他們完全使用相同的業務) 而我做了checkXXXTableViewCell中選中的檢查按鈕(這是我自定義的checkButton)。

最後,我需要改變我的cellForRowAtIndexPath:函數如下。 它工作正常。 希望它可以幫助你。 :)

-(UITableViewCell *)getCell:(Entity *)entity cellForRowAtIndexPath:(NSIndexPath *)indexPath identifier:(NSString *)cellIdentifier { 
    if (allSelected == 1) { 
     return [[CheckedxxxCell alloc] initWithEntity:entity index:indexPath.row reuseIdentifier:cellIdentifier]; 
    } 
    else { 
     return [[xCell alloc] initWithEntity:entity index:indexPath.row reuseIdentifier:cellIdentifier]; 
    } 
}