2013-04-21 2 views
0

Im, пытающийся сделать что-то похожее на это, должно быть без проблем. Но, увы, я слишком тупой, чтобы понять это. Мне нужна помощь.Как сделать эту простую вещь с новой функцией автоматической компоновки XCode?

У меня есть симулятор iphone (с вертикальной ориентацией). Основной вид имеет подвью (синий UIView), который должен отображаться на нижнем 25% экрана. Окончательный визуализированный экран в основном будет выглядеть как белый экран, а нижняя часть будет синей.

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

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

PS - пока я продолжу играть с этим. возможно, я в конечном итоге достигню эврика.

* Обновлены снимки экрана *

Это то, что мой макет выглядит в Interface Builder: This is what my layout looks like in Interface Builder:

И это то, что он заканчивает тем, как в тренажере: And this is what it ends up looking like in the simulator:

* Обновление 2 * Хорошо. После обновления моего сообщения скриншотами мне стало ясно, что симулятор не похож на 4-дюймовую версию экрана (даже если это происходит на экране моего компьютера). После запуска 4-дюймового симулятора я вижу макет так же, как макет IB. Но это заставляет меня задаться вопросом, почему автоматическая компоновка не была достаточно «умной», чтобы приспособиться к меньшему 3,5-дюймовому экрану.

+0

Я ВЕРЮ Я мог бы знать, почему я это вижу. Im использует GLKit. По умолчанию представление связано с GLKView. Это мое родительское представление. Im думает, может быть, мне нужно удалить мой subview из этого GLKView. – AlvinfromDiaspar

+0

Относительно моего предыдущего комментария. Я попытался сделать GLKView в подвид UIVIew, но я получил то же самое решение. :( – AlvinfromDiaspar

+0

Ну, у вас есть проблема с размещением subview. Размер в сторону, это, очевидно, не обнимает нижнюю часть. Прикреплено ли оно снизу? – paulmelnikow

ответ

1

Вы можете просто отключить автоматическую компоновку. Пружины и стойки могут с легкостью сделать ваш subview 25% высоты надзора.

Или вы можете обязательно придерживаться его, но вам нужно будет отрегулировать ограничения в коде. Невозможно установить такое ограничение в текущей версии Xcode. Задайте ограничения в IB, чтобы прикрепить ящик к нижней части окна и исправить высоту, установив выход для ограничения высоты. Затем в -viewDidLoad удалите ограничение по высоте и добавьте новое ограничение в супервизор, который выражает отношение высоты, которое вы хотите.

Это не должно препятствовать вам изучать автоматическую компоновку, но указывать на то, что она немного сложна и что инструменты ограничения в IB являются неинтуитивными и относительно слабыми.Хорошей отправной точкой является видео WWDC Introduction to Auto Layout.

2

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

В IB в XCode вы можете изменить размер холста для макетов iPhone, ищите единственную кнопку с правой стороны, которая выглядит как прямоугольник со стрелками сверху и снизу или внутри него. На скриншоте ниже - самая левая кнопка.

form factor button for xcode