Как смоделировать allowSelection на UITableView до iPhone OS 3.0? - PullRequest
0 голосов
/ 12 января 2010

В OS 3.0, когда allowSelection = NO, невозможно выбрать какую-либо строку, а также отменяется выделение строки.

В предыдущей ОС 3.0 наиболее очевидным решением запретить выбор является возврат nil в willSelectRowAtIndexPath, который является частью UITableViewDelegate

Однако у этого подхода есть две проблемы:

1) Он не стабилен (то есть время от времени строка выбирается ...)
2) Не отменяет подсветку строк

Любая подсказка?

Ответы [ 2 ]

4 голосов
/ 12 января 2010

Вы должны установить selectionStyle для отдельных UITableViewCell с, которые вы не хотите выбирать на UITableViewCellSelectionStyleNone. Для тех, кого вы хотите выбрать, UITableViewCellSelectionStyleBlue. По существу:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //...
    cell.selectionStyle = (canSelectRow ? UITableViewCellSelectionStyleBlue : UITableViewCellSelectionStyleNone);
    return cell;
}
1 голос
/ 12 января 2010

Чтобы отменить выделение строки, вы можете установить для selectionStyle ячейки значение UITableViewCellSelectionStyleNone.

Возвращение nil из willSelectRowAtIndexPath всегда работало для меня ...

...