2014-01-19 4 views
0

Я тестирую концепцию OpenGL, поэтому мое приложение состоит из окна с открытым представлением OpenGL и ничего другого.Растянутое содержимое OpenGL после контроллера модального вида

У меня возникла проблема, когда после представления UIViewController модально содержимое в представлении OpenGL растягивается (удваивается?) По вертикали.

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

Еще одна странность в том, что когда я проверил это некоторое время назад (на iOS 5 или 6), контроллер просмотра лидеров игрового центра заставит это произойти. Теперь это не так - его можно показать и отклонить, не затрагивая базовое представление OpenGL, однако любой из моих собственных UIViewControllers, которые я показываю и отклоняю, вызывает проблему.

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

Edit: Так я вошел в рамки вмещающего зрения и зрения OpenGL, и это то, что я получил:

Frame before (this view): {{0, 0}, {320, 568}} 
Frame before (glview):  {{0, 0}, {568, 320}} 
Frame after (this view):  {{0, 0}, {568, 320}} 
Frame after (glview):  {{0, 0}, {568, 320}} 

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

ответ

0

Хорошо, поэтому я не уверен, почему рамка переворачивала его ширину и высоту, но я исправил ее, yay!

При настройке вида GL (что было сделано в viewWillAppear, следовательно, проблема, начавшаяся при отображении и отключении другого контроллера вида), камера была настроена с использованием рамки вида контейнера для установки соотношения сторон, так как следует: CGSize layerSize = self.view.layer.frame.size;

Этот вид тот, который перевернул его ширину и высоту, поэтому, когда режим GL был настроен снова, соотношение сторон заставляло содержимое растягиваться. Так как я знаю, что мой GL-просмотр - это полная ширина и высота экрана во все времена, я исправил его, используя границы экрана, чтобы настроить камеру/соотношение сторон: CGSize layerSize = [UIScreen mainScreen].bounds.size;

И теперь это прекрасно работает!

Смежные вопросы