Как управлять созданием UITableViewCells? - PullRequest
2 голосов
/ 30 января 2012

Не могли бы вы помочь мне с таким вопросом: мне нужно заполнить tableView ячейками, а также у меня есть массив объектов для заполнения ячейками.Вопрос в том, как пропустить создание ячейки, если объект не удовлетворяет некоторым условиям.Я имею в виду, как написать что-то вроде:

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(objectIsOk) {
    //create cell
} 
else {
    //do nothing
}
return cell;

ПРИМЕЧАНИЕ: у меня нет доступа к этому массиву объектов, он дает мне объект на indexPath.row динамически

1 Ответ

2 голосов
/ 30 января 2012

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

Есливы хотите вернуть пустую ячейку, тогда почему бы просто не сделать что-то вроде этого:

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = nil;

    if (objectIsOk) {
        // Create normal cell
    } else {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BlankCell"];
    }

    return cell;
}

Вы также можете возвратить высоту нуля в методе делегата heightForRowAtIndexPath:, чтобы создать впечатление, что его там нет, вот так:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (objectIsOk) {
        return 44.0f;
    } else {
        return 0.0f;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...