2013-07-30 4 views
0

Im совершенно новый для XCode и Interface Builder, так что простите меня, если решение очевидно.портретная макет не прокручивается в альбомной ориентации

Я разработал красивый портретный вид IPhone в конструкторе интерфейса (XCode 5) и установил ограничения на каждый из элементов (метки, текстовые представления, переключатели, кнопки и т. Д.), Чтобы они правильно позиционировались либо в формате 3.5, либо в 4-дюймовый режим portait в симуляторе.

Однако, когда я поворачиваю симулятор к пейзажу, он разбивает дизайн с элементами, наложенными друг на друга, и другие элементы исчезают (будучи обрезаны с точки зрения) - и я ожидал этого.

Мое решение состоит в том, чтобы поместить все элементы пользовательского интерфейса в UIScrollView и установить ограничения в виде прокрутки, чтобы он заполнял экран в любом portait ландшафтного режима.

После этого портретный вид по-прежнему выглядит в симуляторе, но в пейзажном представлении ничего не прокручивается, и ни один из моих элементов пользовательского интерфейса не уважает их ограничения (растягивайте горизонтально и т. Д.). Я все еще теряю пользовательский интерфейс внизу, и я не могу его прокрутить.

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

Там, кажется, много многословно решений для этого типа сценария на основе кода, но, несомненно, что-то это простое и общее нужно просто «работа»

Что мне не хватает, или что я сделал неправильно , или простая прокрутка действительно должна быть сильно закодирована, чтобы работать ???

ответ

0

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

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

Раздражающе, что раздел видеороликов WWDC на сайте разработчика по-прежнему не работает, но когда он находится в резервном копировании, у вас есть видеоролик с автозапуском в Xcode 5, это поможет объяснить, что происходит.

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

+0

Является ли моя ошибка тем, что Im определяет размер прокрутки до размера окна просмотра?следует ли задать размер прокрутки в более крупном размере, который соответствует всему пользовательскому интерфейсу в портретной или альбомной ориентации? (Я предположил, что scrollview должен быть отнесен к доступному пространству, а затем просто прокрутит его содержимое. –

+0

Ну, scrollview должен прокручивать его содержимое независимо от того, что его содержимое больше, чем оно. Прокрутка должна быть одинаковой ширины и высоту в качестве самого представления. Его содержимое может быть таким большим, как вам нравится, и оно будет прокручиваться до тех пор, пока вы включите взаимодействие с пользователем – PaReeOhNos

+0

. Именно так я и думал, что он должен работать. Когда я переключаю на пейзаж содержимое прокрутки зритель больше, чем сам вид прокрутки (scrollviewer - это размер экрана, а содержимое выходит за нижнюю часть экрана). Возможно, это ошибка XCode 5, я попробую в XCode 4 –

0

ОК, Ive выяснил это. Это IS ошибка в XCode либо 5 или IOS 7

Я создал 2 простых IPhone UI, в интерфейсе строителя - один в Xcode 4.6.3 ориентации IOS 6,1, а другой в XCode 5 Beta 4 нацеливание IOS 7 Beta 4.

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