2012-03-12 2 views
1

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

if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft) 
{ 
    return interfaceOrientation=UIInterfaceOrientationLandscapeLeft; 
} 
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight) 
{ 
    return interfaceOrientation=UIInterfaceOrientationLandscapeRight; 
} 
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) 
{ 
    return interfaceOrientation=UIInterfaceOrientationPortrait; 
} 

Должен ли я сделать что-нибудь дополнительно? Этот код полезен для меня?

+0

@ sch: О, я реализовал этот код в mustAutoRotate ..... и, похоже, это не значит, что просмотр моего приложения в ландшафтном режиме не подходит ..... – Krunal

+0

Да точно .... У вас было решение? – Krunal

+0

Я отредактировал свой ответ, но мне нужно больше информации о проблеме, чтобы подробно описать его, если вам все еще нужна помощь. 1) Используете ли вы Interface Builder или создаете свой вид программно? 2) Какие изменения вы хотите внести в представление при повороте устройства? 3) Снимок экрана может очень помочь. – sch

ответ

1

Изменение реализации shouldAutorotateToInterfaceOrientation: в следующее, если вы хотите, чтобы поддерживать все возможные ориентации:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

Если вы хотите поддержать только: UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight и UIInterfaceOrientationPortrait, а затем изменить свой код в:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown; 
} 

Вам не нужно искать новую ориентацию в [UIApplication sharedApplication].statusBarOrientation, потому что у вас уже есть параметр.


Если вы хотите, чтобы элементы зрения приложена при повороте устройства, вы должны использовать их autoresizingMask собственность. Другой вариант - реализовать метод willRotateToInterfaceOrientation.

Вы можете изменить autoresizingMask элементов вида в интерфейсе Builder в Size Inspector. Попробуйте поэкспериментировать с разной комбинацией, пока не получите нужный результат.

enter image description here

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

+0

Я уже реализовал это ... но та же проблема ...: (\ – Krunal

+0

Готово, bt view не является правильным .. может я должен внести изменения в фрейм? – Krunal

+0

Ох ... thnx sch для решения ... Я попробую это и буду помнить все эти .... :) и yup ,,, это снова помогает мне ... снова .. – Krunal