2010-09-11 5 views
1

Я пытаюсь преобразовать приложение iPhone в iPad. Трудность заключается в том, что iPhone-приложение должно быть заблокировано для портретного вида, а iPad-приложение должно быть заблокировано для просмотра в альбомной ориентации. Я вроде как noob в интерфейсе, поэтому я немного потерялся.iPhone заблокирован Портрет, iPad заблокирован Ландшафт

Любая помощь с благодарностью. Благодаря!

ответ

0

У вас должно быть два наконечника и загрузить их отдельно в зависимости от того, какое устройство определяет ваше приложение: один для iPad и один для iPhone. Затем вы можете легко установить ориентацию. NB: iPad-приложение должно поддерживать все варианты ориентации (т. Е. Если вы поддерживаете портрет, поддерживаете портрет в обратном порядке), и, скорее всего, его отклонит Apple, если у вас нет веских причин, почему он не должен.

+0

Хотя Apple определенно * поощряет * все приложения для iPad поддерживать все повороты, я не согласен с тем, что это «скорее всего, будет отклонено», если это не так, главным образом потому, что я представил iPad-приложение, которое было зафиксировано на портрете, «дайте» * очень убедительную причину », и она была одобрена. Хотя Apple может быть произвольным время от времени, давайте не будем преувеличивать риск. –

+0

Прошу прощения, я не совсем понял это: он должен поддерживать все варианты ориентации. – Felixs

0

Вам необходимо переопределить shouldAutorotateToInterfaceOrientation. Хорошее место, чтобы положить это в делегат приложения.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && 
     UIInterfaceOrientationIsLandscape(interfaceOrientation)) 
    { 
     return YES; 
    } 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && 
     UIInterfaceOrientationIsPortrait(interfaceOrientation)) 
    { 
     return YES; 
    } 
    return NO; 
} 

Я не уверен, но это также может поддерживать телефон быть вверх-вниз, что является HIG нет нет. Вместо этого вы можете использовать interfaceOrientation == UIInterfaceOrientationPortrait для телефона.

+0

N.B. что этот код вызовет сбои во время выполнения на устройствах под управлением iOS 3.x. –

+0

Я использую что-то похожее на это, и это не сбой на устройствах 3.x. Это означает 'UI_USER_INTERFACE_IDIOM()', что вы имеете в виду? –

+0

'UIUserInterfaceIdiomPad' не определен для устройств 3.x –

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