Почему iPhone Interface Builder не позволяет мне устанавливать координаты X, Y верхнего уровня UIView?

Почему iPhone Interface Builder не позволяет мне устанавливать координаты X, Y верхнего уровня UIView? (Это означает, что представление, прямым родителем которого является UIViewController.) Поля X и Y на вкладке Размер представления отображаются серым цветом. Я могу изменить значения X, Y в коде во время выполнения, так почему бы не в Интерфейсном Разработчике?

Спасибо.

10.12.2008 20:57:27
3 ОТВЕТА
РЕШЕНИЕ

Поскольку представление, принадлежащее UIViewControllerобъекту, заполняет доступное пространство в его родительском элементе. Его родителем будет a UIWindowили представление, управляемое чем-то вроде a UINavigationControllerили UITabBarController. Это будет позиционировать вид для вас. Если вы хотите контролировать положение представления, сделайте его подвидом представления, управляемого вашим UIViewController.

4
11.12.2008 22:03:38
Представлениям верхнего уровня в xibs вообще не разрешается указывать X, Y. Лучшая причина, о которой я могу подумать, это то, что у них нет родителя, так что вы даже пытаетесь поместить в него?
Lily Ballard 13.12.2008 23:24:25
Меня это тоже очень раздражает. На мой взгляд, вы не обязательно пытаетесь расположить его в чем-то, например, вы устанавливаете рамку по умолчанию для представления, которое затем может быть добавлено в код в качестве подпредставления для любого включающего представления, которое вы хотите.
Brad The App Guy 7.11.2009 02:40:59
В моем случае это является подвидом в целях контролируемых моего UIViewController, и я до сих пор не могу регулировать происхождение. Мне бы очень хотелось, чтобы он был выровнен с видом. Выбор в инспекторе, похоже, не имеет никакого эффекта.
Joe D'Andrea 31.01.2011 22:59:00

Я согласен, что это недостающая особенность в IB. Для базового использования, т. Е. Создания единого представления верхнего уровня для размещения в стандартном контроллере представления, разумеется, нет необходимости устанавливать источник представления. Однако NIB предназначены для хранения любого количества представлений верхнего уровня в произвольном графе объектов. Поскольку это позволяет вам использовать эти представления любым удобным для вас способом, включая программное встраивание их в любое другое представление, блокирование этих элементов управления в IB является ненужным ограничением. На связанной, но забавной ноте, если вы перемещаете позиционированный вид на верхний уровень, IB сам запоминает свою относительную позицию для целей отображения. Однако эта позиция недоступна после загрузки NIB.

1
20.09.2011 19:21:11

В Xcode 4.3.2 вы можете выбрать size-> freeform в инспекторе атрибутов.

1
20.08.2012 20:53:55