2017-02-19 19 views
-1

В раскадровке у меня есть UIToolbar на UIViewController.iOS автоматически передает UIBarButtonItems на UIToolbar при вращении?

В UIBarButtonItems является:

Left Button/Flexible Button/Nutton 2/Button 3/Button 4 

На App начать кнопки правильно расположены на UIToolbar с кнопкой слева самым левыми и кнопки 2-4 выравниваются от правого края панели инструментов.

После поворота кнопка не перемещается так, что при вращении с портретного на ландшафтный, есть много пространства справа от кнопки 4.

у меня отсутствует параметр, который будет автоматизировать relayout? Должен ли я добавить что-то в функцию viewWillTransitionToSize:withTransitionCoordinator?

+0

Действительно ли панель инструментов настроена на изменение ширины при вращении? Каковы его ограничения? – matt

+0

Хороший вопрос! Поворот панели изменяется. Он имеет ограничения на левый/правый/верхний и фиксированную высоту. – Carl

ответ

0

поведения вы надеетесь на это нормальное поведение панели инструментов, как вы можете легко доказать себе, с помощью простого чистого проекта, не содержащего никакого отношения но панели инструментов:

enter image description here

enter image description here

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

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

+0

Ярмарка ответ. Конечно, если бы я мог указать, что у меня нет стандартной настройки, мне нечего было публиковать :) Я попробую восстановить раскадровку vc и посмотреть, воспроизводит ли xcode мою проблему. – Carl

+0

Хорошо, но вы не должны принимать мой ответ, пока не докажете, что я говорю правду. Просто сделайте то, что я сделал, - начните с совершенно пустого нового проекта и дайте контроллеру вида в раскадровке только показанную выше панель инструментов и три ограничения, которые ее связывают. Затем вы увидите, что панель инструментов ведет себя по желанию. – matt

+0

В новом проекте я подтвердил автоматическое ретрансляцию после того, как iOS автоматически выполнил поворот. По какой-то причине панели инструментов в моем приложении не обрабатываются таким образом. Я буду исследовать дальше. – Carl