2014-09-08 11 views
8

Sto cercando di utilizzare il controller di visualizzazione che ho deciso di utilizzare il layout automatico per. Prima che usassi il layout automatico, la vista mostrava normalmente come lo intendevo durante il runtime. Ma ho deciso di passare al layout automatico (perché dopo tutto, gli iPhone più grandi stanno arrivando), e anche dopo averlo configurato, senza alcun problema, e vedendo che l'app si è adattata bene alle dimensioni dell'iPhone in IB; Ho ancora uno schermo vuoto. Per dimostrarlo, ecco le foto:Xcode 6 controller di visualizzazione che mostra lo schermo vuoto con il caricamento automatico

Xcode 6 shot.[][1]

iOS Simulator shot. Note that the navigation bar and tab bars are showing.

Allora, perché sta succedendo questo? Ho aggiunto i vincoli nella vista quadrata ed è stato ridimensionato con grazia alla vista iPhone in Interface Builder. Se guardi anche la barra laterale, gli avvisi per gli errori di layout automatico non sono presenti. E IB sta rendendo tutto. Ma perché il simulatore è vuoto?

E sì, ho collegato tutti gli elementi per essere codice corretto. Ho verificato E sì, ho il codice che inserisce il testo in un'etichetta. Eccolo, nel metodo 'viewDidLoad()':

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.titleLabel.text = "Hello, World!" 
} 

E io reemphasise: l'applicazione ha lavorato prima di me layout automatico. Per questa build, ho eliminato tutti gli elementi, li ho spostati, li ho ricollegati e aggiunto la vista ottimizzata con l'unità di layout automatico IB resa corretta. Ma sto ottenendo risultati diversi qui.

Per favore aiutatemi. Oh, e mi dispiace per le immagini massicce, non riesco a capire come ridurle.

EDIT: Ho utilizzato e utilizzato il debugger della vista e ho cercato di acquisire la gerarchia della vista per cercare il clipping o l'occlusione. Abbastanza divertente, il debugger vista mostra correttamente il contenuto, e non ho visto alcun ritaglio o occlusione. Tuttavia, quando ho provato a mostrare i fotogrammi nel simulatore, non mostrava nulla. Sto iniziando a pensare che questo sia un bug del simulatore. Attualmente sto usando Xcode 6 beta 6.

+0

Vedere qualcosa nell'output della console? Il layout automatico a volte ti dà un suggerimento. –

+0

Nessuna uscita della console dal layout automatico. Proprio come prima. –

+0

Sto riscontrando lo stesso problema con una collectionView (super semplice gerarchia di viste). Non appena aggiungo dei vincoli, ottengo un VC vuoto. Hai avuto fortuna con questo? –

risposta

2

ho ricreato il problema aggiungendo una vista insieme a un controller di visualizzazione standard e questo sembra essere il problema:

Constraints added when selecting "Add suggest constraints"

enter image description here Avere Xcode si aggiungere vincoli suggerite dà questo , che fa sì che la vista non venga visualizzata.

Si allineando della vista destra e sinistra per le guide di layout (che non sembra essere di destra)

si dovrà aggiungere manualmente i vincoli di spaziatura alla vista.

Questo è ciò che si vuole:

enter image description here

+0

Quindi immagino che il problema sia che i vincoli suggeriti da Xcode non sono così intelligenti come pensavo, o semplicemente non ho dato una configurazione corretta. In entrambi i casi, spiega perché anche io ho potuto risolvere il problema solo rifacendo tutti i miei vincoli senza usare quelli suggeriti. –

+0

Sì a meno che tu non sia un maestro del layout automatico, è meglio aggiungere solo quelli ovvi e Xcode aggiungere quelli mancanti. –

1

Prova ad attivare l'editor dell'assistente e usa Anteprima mentre modifichi i tuoi vincoli.

Screenshot http://www.mattknott.com/images/screenshot.png

+1

Grazie, ma l'anteprima mostra l'interfaccia utente corretta da rendere. Quello che ho notato è che tutto ciò che faccio sul layout automatico è rotto. Ho persino creato un progetto di test con una semplice etichetta. Quando lo trascino, l'app funziona bene e il sim iOS funziona bene. Ma non appena aggiungo dei vincoli, anche quella semplice etichetta non viene mostrata nella sim (nonostante sia ben posizionata in IB). Sto diventando sempre più convinto che si tratta di un bug Xcode 6 in quanto l'intero layout automatico è rotto. Quando ho fatto qualcosa di simile in Xcode 5, ha funzionato bene. –

0

eseguire le modifiche in "Wäny Hany per tutti i valori layout di base" modalità. quindi non vedrai lo schermo vuoto durante i test su dispositivi diversi.

La selezione della modalità può essere una dalla barra in basso. Good Luck

Problemi correlati