Как быстро выбрать все строки в iOS5 UITableView - PullRequest
2 голосов
/ 16 марта 2012

С iOS-5 UITableView позволяет многократный выбор, есть ли быстрый способ с хорошей производительностью выбрать (и выделить) все строки? Я говорю о более чем тысячах строк данных fetchedResultsController.

Я пробовал использовать selectRowAtIndexPath: анимированный цикл, и кажется, что это не очень хорошая идея для огромного набора данных.

Также я обнаружил, что отмена выделения всех строк будет лучше с табличным представлением reloadData, чем с deselectRowAtIndexPath: animated: внутри цикла. Это безопасный способ отменить выбор?

Спасибо

Ответы [ 2 ]

1 голос
/ 16 марта 2012

Как я знаю, у вас нет других возможностей для выбора строк, только selectRowAtIndexPath:.

И я думаю, вам не нужно иметь столько строк в табличном представлении, попробуйте оптимизировать его.Вам действительно нужно так много строк?

0 голосов
/ 05 февраля 2013

У меня была такая же проблема, у меня было несколько ячеек, которые еще не были созданы.И я должен был выбрать их всех.Но вы не можете добраться до клетки, не созданной.Поэтому я не мог использовать getTableViewCellForRowAtIndex: function.

У меня было решение для выбранных объектов, я установил всю коллекцию как selectedcollection.Но моя проблема была в пользовательском интерфейсе, я должен был показать их пользователю.

Поэтому я решил создать checkXXXTableViewCell и унаследовал этот класс от XXXTableViewCell.(Они точно используют один и тот же бизнес) И я сделал кнопку проверки (это был мой пользовательский checkButton), выбранный в checkedXXXTableViewCell.

Наконец, мне нужно изменить функцию 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];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...