AutoLayout uitableviewcell в альбомной ориентации и на iPad для расчета высоты на основе портретного iPhone
Я учусь / экспериментирую с autolayout иUITableViewCell
«S. Несколько дней назад я задал другой вопрос, на который я ответил на свой вопрос, я все еще использую те же ограничения / код. Полный код смотрите здесь:AutoLayout multiline UILabel обрезает текст .
Оборвать его внутрьheightForRowAtIndexPath
Я использую экземпляр кастомаUITableViewCell
чтобы вычислить высоту, строка должна быть. Это прекрасно работает в портретной, однако, когда я переключаюсь в ландшафтный режим,systemLayoutSizeFittingSize
возвращает ту же высоту для ячейки, как если бы она была в портретной. Я распечатал кадрыcontentView
и ярлыки и ничего вроде не обновляет.
Результатом этого являются ограничения, заставляющие метки расти, оставляя огромное количество пустого пространства. Метки отображаются с правильной шириной, в альбомной ориентации они расположены так, как я и ожидал. Если я жестко закодирую высоту ячейки, она отлично работает.
Это выглядит так:
После жесткого кодирования (как я хочу, чтобы это выглядело):
Еще хуже, я получаю тот же результат при работе на iPad, даже в портретном режиме, то есть я получаю размеры iPhone. Из того, что я вижу, это как будтоsystemLayoutSizeFittingSize
не имеет понятия ориентации или устройства в этом отношении.
Я пытался подделатьframe
ячейка должна быть, попытался повернуть ячейку, вызываяlayoutSubviews
перезагружаяtableView
на изменение ориентации, и, кажется, ничто не влияет на это.
Я пропустил что-то основное?