sanchessd Postado 10 de março de 2012 Denunciar Postado 10 de março de 2012 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;
silverwolfx10 Postado 12 de março de 2012 Denunciar Postado 12 de março de 2012 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
sanchessd Postado 12 de março de 2012 Autor Denunciar Postado 12 de março de 2012 (editado) 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 12 de março de 2012 por sanchessd
sanchessd Postado 12 de março de 2012 Autor Denunciar Postado 12 de março de 2012 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.
silverwolfx10 Postado 12 de março de 2012 Denunciar Postado 12 de março de 2012 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 .
sanchessd Postado 12 de março de 2012 Autor Denunciar Postado 12 de março de 2012 eu também nao sou muio experiente, programo para IOS a uns 3 meses só. Mas valeu pela força ae!
sanchessd Postado 12 de março de 2012 Autor Denunciar Postado 12 de março de 2012 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
Astine Postado 12 de março de 2012 Denunciar Postado 12 de março de 2012 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.
sanchessd Postado 12 de março de 2012 Autor Denunciar Postado 12 de março de 2012 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...
Astine Postado 12 de março de 2012 Denunciar Postado 12 de março de 2012 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.
sanchessd Postado 15 de março de 2012 Autor Denunciar Postado 15 de março de 2012 mal a demora, vou baixar aqui e dar uma olhada!
sanchessd Postado 19 de março de 2012 Autor Denunciar Postado 19 de março de 2012 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.
sanchessd Postado 19 de março de 2012 Autor Denunciar Postado 19 de março de 2012 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
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora