Domanda

Sto avendo due problemi con viewcontrollerss in orientamento orizzontale sul iPad.

(1) Ho due popup che tengono le tabelle. Le tabelle devono scorrere a una riga specifica per riflettere una selezione nella vista principale. Invece, le tabelle fanno scorrere giù alcuni, ma l'attuale resti fila selezionati fuori dallo schermo.

(2) Tutti i miei fogli di azione venire con una larghezza di 320.

In Interface Builder, tutti i miei punti di vista sono creati con orientamento orizzontale. Solo la finestra principale non è, ma non vedo un modo per cambiare la situazione.

La mia configurazione: Al momento del lancio, ottengo le seguenti coordinate per la mia finestra principale e la vista principale viewcontroller:

Window frame {{0, 0}, {768, 1024}} mainView frame {{0, 0}, {748, 1024}}

Tutti gli altri punti di vista, dopo che mostrano queste coordinate quando convocato (quando caricato, ma prima di essere presentato):

    frame of keysig {{0, 0}, {1024, 768}}
    frame of instrumentSelect {{20, 0}, {1024, 768}}
    frame of settings {{0, 0}, {467, 300}}

In tutti i miei viewControllers, rispondono i per shouldAutorotateToInterfaceOrientation con:

            return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
                        (interfaceOrientation == UIInterfaceOrientationLandscapeRight));

Tutto (o quasi) le funzioni come previsto. I lanci di applicazione in una delle due modalità paesaggio. Le viste (e) viewcontrollers visualizzazione tutto cui appartiene e chiavette lavorano tutto sullo schermo come previsto. Tuttavia, ho ancora i due problemi.

Problema 1: Ho due pop-up contenenti tabelle abbastanza a lungo per eseguire fuori dallo schermo. Le tabelle devono scorrere fino a una riga selezionata. Essi rotolo cioè esse non iniziano visivamente nella riga 1 ma non fanno abbastanza scorrimento per mostrare effettivamente la riga selezionata.

alt text http://idisk.mac.com/mahboud//Public /keysig.png

alt text http://idisk.mac.com/mahboud//Public /instrumentlist.png

Sembra quasi un rettangolo interno uitable viene creato con il numero sbagliato e rimane in questo modo, ma Ho controllato entrambe coordinate contenuti ScrollView del UITableView e sembravano ragionevoli.

Problema 2: Credo che questo è legato al problema 1, perché i miei actionsheets venire con una larghezza di 320. Posso solo supporre che l'iPad permette actionSheets in soli 320 o 480 larghezze e dal momento che pensa in qualche modo che lo schermo è orientata in modo verticale, si utilizza il valore più stretta.

Là lo avete. Non posso credere che sto ancora ottenendo appeso su questioni di orientamento. Giuro Apple non rendere più facile avere un'applicazione paesaggio. Tutte le idee?

È stato utile?

Soluzione

I sorta di capito. Se prendo il

[self.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionNone animated:YES];

fuori sia del -viewDidAppear o -viewWillAppear, e invece lo mise subito dopo il mio -presentPopoverFrom ..., allora funziona:

[popController presentPopoverFromBarButtonItem:keySigBBItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

[keySignatureTableVC.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionMiddle animated:NO];

Ciò che deve accadere è che sia -viewDidAppear e -viewWillAppear devono essere sempre chiamati prima presentPopover ... ridimensiona o riorienta la vista. Quello che faccio in questi due metodi non funziona sul telaio o limiti corretti. Scorrimento dopo sembra funzionare.

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