2015-05-07 2 views
1

Я использую Autolayout на iOS 8 и использую UITableViewRowAnimationAutomatic и всю свою магию.iOS8 автоматический столviewheight неправильно на первых ячейках

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

Эти ячейки нарисованы только на iPad, и я указал только для sizeclass (Regular | Regular).

Есть ли у вас какие-либо намеки, что может быть проблемой?

+0

Вы реализовали метод '' estimatedHeightForRow ...? И каков ваш код для 'heightForRow ...'? Вам нужны оба этих метода до того, как будет достигнута высота автомашины. – Fogmeister

+0

Да, я сделал: self.tableView.estimatedRowHeight = UITableViewRowAnimationAutomatic; heightForRow не реализован, потому что он больше не понадобится, поскольку я читаю в учебнике – netshark1000

+0

Нет, это неверно. Я добавлю ответ ... – Fogmeister

ответ

2

Есть три вещи, которые вы должны убедиться, что вы делаете ...

  1. Ограничение AutoLayout должно охватывать всю высоту ячейки. Поэтому просто взглянув на ограничения, вы должны быть в состоянии точно сказать, насколько высока клетка.

  2. Реализовать оценочную высоту строки метода ...

    - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        // return an actual number here. This is a guess of how tall the cells are 
        return 100; 
    } 
    

    или

    // Thanks @rdelmar :-) 
    self.tableView.estimatedRowHeight = 100; 
    
  3. Реализует высоту строки ...

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        // return auto dimension here 
        return UITableViewAutomaticDimension; 
    } 
    

После того как вы сделали все три из них он будет работать.

Смотрите мой блог здесь для получения дополнительных данных (обратите внимание, что было обновление с тех пор, как я написал блог, который я еще не обновил).

http://www.oliverfoggin.com/using-a-static-uitableview-as-a-layout-device/

+0

Я изменил его на это, и поведение в точности как bevor .... Может ли это быть (обычная регулярная) вещь? – netshark1000

+0

Вы работаете на iPad или iPhone? Обычный - обычный для iPad. Если вы используете классы классов, сохраните его простым, не изменяя его. Вам нужно вернуть его в Any | Any, но есть вероятность, что ограничения, которые вы добавили, будут на Regular | Regular. Самое простое решение, чтобы исправить это ... удалить файл nib и начать заново. – Fogmeister

+0

Также, как вы представляете представление? Это в поп-музыке? Или это весь экран? Или находится в контроллере с раздельным просмотром? – Fogmeister

Смежные вопросы