AutoLayout автоматически обновляет позиции при представлении

У меня есть UIPageViewController с несколькими страницами, и каждый раз, когда я прокручиваю новую страницу, содержимое немного ниже top layout guide. Но когда представление, наконец, отображается для пользователя/установлено посередине, оно перемещается вниз, как и должно было быть.

Я использую autolayout в storyboards для размещения своего контента, и я установил Top Space to Top Layout Guide: 5p.

Кажется, это происходит только при использовании UIPageViewController - обычно у меня нет этой проблемы с AutoLayout, и это не первый раз, когда у меня это было с pageview controller.

Кто-нибудь знает, что я могу сделать, чтобы представление правильно размещалось под верхним руководством по макету до того, как оно было представлено пользователю, чтобы оно не прыгало, как только оно было представлено?


person Aleksander    schedule 14.01.2015    source источник


Ответы (2)


Оказывается, это проблема iOS8, и ее можно решить, используя Top Space to View вместо Top Layout guide.

Я надеюсь, что это поможет всем, у кого есть такая же проблема.

person Aleksander    schedule 14.01.2015

Для других, которые могут столкнуться с этим вопросом. Лучший ответ, который я мог найти по этому поводу, находится в этом ответе SO,

[question]iOS 8 UIPageViewController, применяющий ограничения после переходов

Проблема вызвана тем, что в iOS 8 поведение автоматического макета по умолчанию заключается в выравнивании по полям, тогда как в предыдущих версиях iOS это было по краям представления. Поля не рассчитываются до тех пор, пока контроллер просмотра страниц не закончит анимацию, что и вызывает скачки представления.

Однако это можно исправить, сняв флажок выравнивания по краю для каждого ограничения. Надеюсь, это поможет кому-нибудь.

person kai Taylor    schedule 29.01.2015