2016-03-11 6 views
0

Я пытаюсь сделать снимки частью прокрутки в галерее. Я добавил 4 ограничения: aspectRatio, Центр по вертикали и -12 интервал между полями для ближайшего соседа (вид) слева и справа.Ограничения UIScrollView основаны на раскадровке

По какой-то причине, когда UIView в раскадровке является 4-дюймовым iPhone, iPhone 5 и 5s выровнены, а 6 и 6s испорчены. Если я изменил размер UIView на 4,7-дюймовый iPhone (оставив только ограничения), то 5 и 5 будут смещены, а 6 и 6 - в порядке. Я думаю, что начальный размер представления прокрутки инициализируется, когда сначала создается сам вид, который изначально имеет размер вашей раскадровки. Поэтому я попробовал распечатать фрейм для отладки. Когда iPhone в раскадровке составляет 4,7 дюйма, кадр выводится на (-1,83,377,500), который отлично работает. Когда Раскадровка составляет 4 дюйма, кадр распечатывается (-1,70,322,427)

Я устал, используя scrollView.layoutIfNeeded, который помогает и печатает (-9,72.5,393,522), но не получает рамку так же, как и если раскадровка была установлена ​​на 4.7 iPhone.

Edit: Скриншоты

enter image description here

+0

Вам нужно больше объяснить, как настроена иерархия вашего представления и каковы ограничения для ее видов. Если вы получаете неожиданные результаты для разных размеров устройства, возможно, вы указали слишком много или недостаточно ограничений. – beyowulf

+0

Я не уверен, что вы подразумеваете под иерархией, но внутри ScrollView ничего нет. Что меня смущает, так это то, что ограничения основаны на том, что установлено в ракурсе раскадровки. Например, в раскадровке, если я перехожу к «Стимулированной метрике» и изменяю размер, влияющий на то, как он влияет на симуляцию. – bdc

+0

Где вы устанавливаете ограничения? В раскадровке или в коде? – beyowulf

ответ

0

А я решил. Похоже, я слишком рано вызывал scrollView.frame. Использование его в viewDidLoad слишком рано, его нельзя использовать до viewDidLayoutSubviews(). Массивная головная боль ушла!

+0

Вызов scrollView.frame слишком рано? Что вы имеете в виду? –

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