Пользовательский UITableViewCell построен с использованием изменения размера IB? - PullRequest
3 голосов
/ 17 марта 2011

Я гарантировал, что маска автоматического изменения размеров моей ячейки допускает гибкую ширину, но когда устройство поворачивается, ячейки не меняются.

Я также убедился, что размер таблицы изменяется, проблема связана с ячейками.

Это код, который я использую для создания ячеек:

if (cell == nil) {
        // Load the top-level objects from the custom cell XIB.
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MetaTableViewCell" owner:self options:nil];
        // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
        cell = [topLevelObjects objectAtIndex:0];
    }

Может кто-нибудь подумать, что может быть не так?

Размер ячеек, созданных с использованием IB, не изменялся?

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Если высота ячейки не изменена, я предлагаю вам изменить метод делегата UITableView после поворота.

-

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(condition)// has rotation taken place
    // new height
    else
    // old height
    }

Пожалуйста, убедитесь, что вы вызываете[tableView reloadData]; когда произошло вращение.

0 голосов
/ 18 марта 2011

Если я понимаю ваш вопрос, вы хотите изменить высоту UITableViewCells, верно? Попробуйте добавить эту строку в делегат вашего TableView:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return *height*;
}

У меня была такая же проблема. Если вы установите размер в IB, вы можете добавить туда больше, но он все равно попросит вашего делегата высоту при загрузке. Если ваш делегат не реализует этот метод, он просто примет высоту по умолчанию.

...