2015-03-10 1 views
0

EDIT: мне удалось прикрепить его вниз к преступнику: UIModalPresentationPageSheet (то же с UIModalPresentationFormSheet)Autolayout ломается, представляя UITableViewController в UIModalPresentationPageSheet

Если удалить это и сделать простой UIModal, то автоотключение не прерывается ... Однако мне все еще не удалось найти обходной путь, но я думаю, UIModalPresentationPageSheet должен пересчитать ширину таблицы и сломать ограничения.

Я попытался обновить ограничения после ViewDidLoad и ViewDidAppear ... но безрезультатно.

Я пытался выяснить, почему мой Autolayout ломается. Моя первоначальная компоновка была более сложной, но я сломал ее до самого простого выражения, и она все еще ломается.

Вот мои начальные настройки ячейки:

enter image description here enter image description here

Ниже приведены ограничения для метки:

enter image description here

А вот ограничения на UITextView:

enter image description here

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

enter image description here

Любые идеи?

+0

Есть ли предупреждения в консоли Xcode о ограничениях компоновки? –

+0

для вашей этикетки удалить заднее пространство до: tire de ... equals 8 – Robin

+0

@VinayJain: Нет. Ни одного предупреждения XCode. – Benjamin

ответ

1

Ширина установлена ​​как 722 для UITextView в пользовательском интерфейсе, которая вступает в силу, если отсутствуют ограничения для метки в классе размера iPad.

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

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

Edit: Решение найдено из обсуждения

Интересно, интересно, если размер класса отличается в модальном представлении со страницей или форме? Когда вы используете popover, класс размера ширины изменяется на компактный. Попробуйте использовать модальный FullScreen, чтобы убедиться, что это проблема? Также посмотрите на [self.traitCollection] в отладчике, чтобы узнать, какой класс размера он использует.

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

+0

Я проверил, что метка присутствует в правильном классе размеров, и это ... Кроме того, я не думал о проверке в предварительный просмотр ... после быстрой, но тщательной проверки предварительный просмотр фактически отображает то, что я ожидаю от него. Но не сборка. Я предполагаю, что проблема возникает из-за того, что я вызываю ее через UIModalPresentation ... – Benjamin

+0

Что вы видите, если вы вращаете симулятор горизонтальный? –

+0

Он остается сломанным в симуляторе, но НЕ в предварительном просмотре ... – Benjamin

0

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

+0

На скриншоте ярлык прикреплен передним краем к надзору, а затем прикреплен к тексту, который прикреплен к задней кромке супервизора. Приоритет обнимания также различен, поэтому метка должна быть шириной текста ярлыка, а UITextField должен заполнить остаток, увеличившись. Все это выглядит правильно для меня. Обе стороны всегда ссылаются друг на друга, если смотреть с обоих концов, как было показано? –

+0

Проблема @RoryMcKinnel - задний край метки прикреплен к текстуру, а передний край textview прикреплен к метке. Если вы установите ширину метки вместо заднего края и оставьте переднюю кромку textview прикрепленной к метке, она должна исправить ее. – IxPaka

+0

@ALL: Рори прав, ширина должна быть ширины метки. И даже при установке ширины явно проблема остается. – Benjamin

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