Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Interface Orientation iPad

Featured Replies

Postado

Estou fazendo meu app versao para iPad, na versao pro iPhone o app trabalha somente na visao "Portrait" mas na versao para iPad ele será na visao LandsCape, vejam o que fiz até agora:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
else{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);

}
}
[/CODE]

ele detecta se é iPad e caso for, ficará em Landscape em qualquer posiçao que o iPad estiver, pro iPhone faz o contrario.

não tive sucesso, nao funcionou.

alguém ja fez algo parecido ? Basicamente o que quero é simples, iPhone == Portrait, iPad == LandsCape;

  • Respostas 12
  • Visualizações 1.9k
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

Posso estar errado mas acho que dentro do return é apenas um "=" ao inves de "=="

Pois é atribuição e não condição.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

// Return YES for supported orientations

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

else{

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

}

Caso tenha falado besteira desculpe, ainda não programo em Objective C

Postado
  • Autor

opa, obrigado pela dica, e voce tem razao, quando estava com esse codigo estava recebedo um erro no debug, pois nao retornava nenhum valor TRUE e nao funcionava nada, porem para corrigir este problema tentei implementar outro codigo:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown) &&
(interfaceOrientation != UIInterfaceOrientationPortrait);
} else {
return (interfaceOrientation != UIInterfaceOrientationLandscapeLeft) &&
(interfaceOrientation != UIInterfaceOrientationLandscapeRight);
}
[/CODE]

só que o resultado é muito estranho, quando rodo o app no iPad, a tela carrega em modo UIInterfaceOrientationLandscapeLeft, mas somente enquanto está na tela de splash, depois volta ao normal, e mesmo que eu gire o iPad nao acontece a rotaçao da tela,

criei um projeto novo só para testes e funciona perfeitamente este codigo, porém se eu adcionar um MainWindow ferra tudo, o app nao faz mais a rotaçao.

o formato da tela carrega no modo certo, "Landscape", mas minha taBar fica na visão "Portrait" e nada gira.

:/

Editado por sanchessd

Postado
  • Autor

http://www.mediafire.com/?pzmh8jfes4uv55z

Aqui é o projeto de teste que criei, é assim que eu queria que o meu funcionace, porem nao funciona, a unica diferença é que o meu tem um MainWindow com a TabBar.

Postado

Hum, bom vai ter que esperar alguem mais experiente por que eu AINDA não programo mas dentro de 2 meses poderei responder, se quizer esperar srrs..

Brincadeiras a parte.

Alguem vai te ajuda e eu to de olho no topico .

Postado
  • Autor

eu também nao sou muio experiente, programo para IOS a uns 3 meses só.

Mas valeu pela força ae!

Postado
  • Autor

olha só, fiz mais um projeto de teste e vou postar aqui pra quem quiser olhar, usei o mesmo codigo do projeto anterior só inclui uma TabBar:

http://www.mediafire.com/?d64aphz8q6sf2lw

é a primeira vez que estou usando InterfaceOrientation em um app, deve estar faltando algo.

o objetivo é: caso for iPhone visao Portrait ou caso for iPad visao Landscape

Postado

Estou fazendo meu app versao para iPad, na versao pro iPhone o app trabalha somente na visao "Portrait" mas na versao para iPad ele será na visao LandsCape, vejam o que fiz até agora:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
else{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);

}
}
[/CODE]

ele detecta se é iPad e caso for, ficará em Landscape em qualquer posiçao que o iPad estiver, pro iPhone faz o contrario.

não tive sucesso, nao funcionou.

alguém ja fez algo parecido ? Basicamente o que quero é simples, iPhone == Portrait, iPad == LandsCape;

O seu único problema nesse trecho do código é que você está retornando o mesmo valor se for um iPad ou iPhone. Troque dentro do else o UIInterfaceOrientationLandscapeLeft por UIInterfaceOrientationPortrait ou UIInterfaceOrientationPortraitUpsideDown. Caso queira dar suporte aos dois essa macro resolve o seu problema: UIInterfaceOrientationIsPortrait(interfaceOrientation).

Abaixo segue um trecho de código como exemplo:

[CODE]
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
} else {
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
}
[/CODE]

Posso estar errado mas acho que dentro do return é apenas um "=" ao inves de "=="

Pois é atribuição e não condição.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

// Return YES for supported orientations

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

else{

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

}

Caso tenha falado besteira desculpe, ainda não programo em Objective C

Nesse caso é uma condição mesmo e não uma atribuição.

Postado
  • Autor

voce chegou olhar este projeto que postei ?

http://www.mediafire.com/?pzmh8jfes4uv55z

sem a tabBar funciona perfeitmente como eu quero, mas ao adc a tabBar não funciona...

Postado

Fiz umas alterações no seu projeto, verifica se é assim que você quer: http://www.mediafire.com/?f1365stb184iio3

As alterações que eu fiz foi selecionar quais as orientações suportadas para cada tipo de dispositivo (iPhone: Portrait e Upside Down / iPad: Landscape left e Landscape right). Alterei o NIB também, adicionei uma UITabBar e setei o autosizing dela.

Postado
  • Autor

mal a demora, vou baixar aqui e dar uma olhada!

Postado
  • Autor

depois de uma semana estou respondendo, demorei pois estava viajando...

bem, é exatamente isso que preciso no meu app, porém recebo o mesmo problema do inicio, tenho um MainWindow.xib no meu projeto, se adcionar um MainWindow no projeto que me mandou verá que ele nao vai mais responder a rotação.

fiz uns testes coloquei


return YES;
[/CODE]

que no caso responderia a todas Orientações mas ele nao da sinal.

Postado
  • Autor

depois de muitos testes aqui aconsegui resolver o problema.

no meu appDelegate.h

coloquei:


@interface UITabBarController (MyApp)
@end
[/CODE]

e no meu appDelegate.m

[CODE]
@implementation UITabBarController (MyApp)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
} else {
return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
}
@end
[/CODE]

minha tabBar roda certinho agora

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.