Domanda

Ho un problema di orientamento davvero strano. Ho una sequenza di controller di visualizzazione sotto un controller di navigazione. Uno di questi può assumere qualsiasi orientamento. Quando lascio l'orientamento, devo usare il setorientamento. La cosa divertente è che la rotazione si svolge mentre la transizione si verifica alla pagina successiva. Questo non è normalmente un problema, tranne per un singolo caso: da UideviceorrientationPortraitUpSided a causa delle cause normali che tutti i miei elementi montati sopra la migrano circa un ottavo di una pagina.

Ci sono tre modi in cui penso di poterlo risolvere:

  1. In qualche modo separare il setorientamento dalla mia chiamata PushViewController (quindi la nuova vista non ha bisogno di capovolgere)
  2. Imposta i miei articoli in modo che siano ancorati nella parte superiore del dispositivo in modo migliore (ho controllato e sembrano essere)
  3. Ripristina la dimensione Y sugli elementi sul metodo ViewDidload ma sembra sbagliato.

Ecco la mia spinta la nuova vista sul codice dello stack:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

Qualcun altro trovi strano che il simulatore non ti consenta di testare il comportamento ritratto a testa in giù?

È stato utile?

Soluzione 3

Il modo per evitare il bug di rotazione quando si ruota da un ritratto al ritratto non è farlo. Invece, ruota due volte fermando a metà strada (diciamo UIDeviceOrientationLandscapeRight). La questione del tempismo non è usare il sonno ma invece implementare didRotateFromInterfaceOrientation e spara la seconda rotazione (o spingi alla vista successiva) a quel punto.

Altri suggerimenti

Solo per notare: Apple ha iniziato a utilizzare un analizzatore statico (forse anche dinamico) e blocca le app che utilizzano metodi privati (per esempio setOrientation:) dall'ingresso nel negozio. È successo a un mio amico la scorsa settimana.

Hai provato a costruire contro iPhone OS 3.0 e fare affidamento solo shouldRotateToInterfaceOrientation:? Il comportamento sembra essere risolto (rispetto all'implementazione in 2.x) e - almeno per me - fa il lavoro.

In genere non supporteresti l'orientamento capovolto. Questo sembra essere il comportamento standard di App Apple e ha senso. Il caso capovolto non è davvero utile e può causare confusione all'utente.

Avevamo un problema simile in cui le sottoviste avrebbero migrato su e giù per la vista principale quando sfogliava il caso capovolto. Abbiamo appena smesso di supportare a testa in giù e questo sostanzialmente ha risolto il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top