Работа с альбомными видами, созданными с помощью конструктора интерфейсов - PullRequest
2 голосов
/ 10 июля 2011

Я пытаюсь понять что-то, что, глядя в Google, кажется ошибкой в ​​iPhone SDK, но, возможно, это просто что-то скрытое, в чем я не уверен.

Я разработал новый вид в Интерфейсном Разработчике, в ландшафтном режиме. Это выглядит так:

Но когда я загружаю его из одного из моих других представлений, несмотря на то, что он горизонтальный, весь контент выглядит не так, как внутри конструктора интерфейса, он выглядит так:

Я нашел некоторый код в Google, который помог вроде решить эту проблему, но решение не идеальное, и, честно говоря, это просто некрасивый обходной путь, код (в viewDidLoad) :

// First rotate the screen:
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;

// Then rotate the view and re-align it:
CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation( 1.570796327 ); // 90 degrees in radian
[self.view setTransform:landscapeTransform];

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

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

Заранее спасибо! :)
Шай.

1 Ответ

0 голосов
/ 10 июля 2011

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

landscapeTransform = CGAffineTransformMakeTranslation(0, 20);
[self.view setTransform:landscapeTransform];
...