Почему мой UITableViewCell не корректируется в альбомной ориентации в Cocoa Touch? - PullRequest
1 голос
/ 02 апреля 2012

Я успешно сделал UITableViewCell, высота которого изменяется в зависимости от содержимого (используя sizeWithFont).В настоящее время я пытаюсь заставить свое приложение работать в любой ориентации, поэтому мне пришлось внести несколько изменений в мой код.Первым делом я добавил некоторый код, который перезагружает tableView при каждом изменении ориентации.Это заставляет sizeWithFont корректировать размер ячейки таблицы.Когда я начинаю в портретной ориентации, я могу поворачивать устройство в любом направлении, и UITableViewCell автоматически подстраивается под размер текста.

Однако у меня возникла проблема, когда ориентациявлево или вправо, когда таблица изначально загружена.Ширина ячейки (переменная widthVar в приведенном ниже коде) равна 300, что является шириной ячейки в портретной ориентации.Ожидаемый результат равен 440. Это вызывает нежелательное поле в ячейке табличного представления.Как я могу сделать так, чтобы я получил правильную ширину ячейки?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
        static NSString *CellIdentifier = @"plainDetail";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if (!cell) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
            cell.selectionStyle = UITableViewCellSelectionStyleNone;
        }

        UILabel *enchantmentLabel = (UILabel *)[cell viewWithTag:402];
        enchantmentLabel.text = [self.enchantmentResultsBrain getDescription:self.enchantmentAndLevel];
        CGFloat widthVar = cell.textLabel.frame.size.width;

        NSLog(@"size: %f", widthVar);

        CGSize maximumLabelSize = CGSizeMake(widthVar, 9999);

        CGSize expectedLabelSize = [enchantmentLabel.text sizeWithFont:enchantmentLabel.font 
                                                                           constrainedToSize:maximumLabelSize 
                                                                               lineBreakMode:enchantmentLabel.lineBreakMode];

        return expectedLabelSize.height+10;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...