Ограничения AutoLayout для UITableViewCell contentView не соблюдаются

Я пытаюсь создать динамически изменяющиеся размеры ячеек таблицы. Я выполнил изменение размера с помощью этого ответа, который является очень подробным и полезным.

Тем не менее, максимальная ширина для метки не рассчитывается правильно вheightForRowAtIndexPath,

Моя ячейка в настоящее время имеет только один ярлыкcontentViewс ограничениями, установленными для закрепления всех краев надписи наcontentView кромки. Вот что у меня в IB

Размер ячейки вычисляется с помощью ячейки вне экранаheightForRowAtIndexPath с помощью

CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

Во время этого процесса кажется, что он соблюдает ограничения, и label.preferredMaxLayoutWidth свойство устанавливается равным 320, но когда метка действительно отображается, все еще есть заполнение.

1 ответ

Решение

Отступы - это поля макета. Вы должны остерегаться Constrain to margins вариант.

Constrain to margins включен:

Constrain to margins выключен:

Как это отключить?

  1. Вы можете дважды щелкнуть по одному из ограничений и снять флажок Relative to margin опция:


  1. Снятие отметки Constrain to margins при создании ограничений метки:

Ссылка по теме:
Что такое "ограничить на полях" в раскадровке в Xcode 6

Другие вопросы по тегам