2014-05-10 7 views
5

Sto usando Git per il controllo del codice sorgente e mi ha permesso di individuare esattamente il motivo per cui una mia vista si rifiuta di posizionarsi correttamente. Risulta che ogni vista in un singolo controller è stata impostata per essere corretta dalla proprietà XML fixedFrame="YES". Ho isolato questo cambiamento dal commit in cui è stato scritto, ed è ora nella mia directory di lavoro. Ma ecco la parte fastidiosa. Posso ripristinare il file Storyboard e, correttamente, l'XML rimuoverà tutti gli attributi fixedFrame. Ma non appena inizio a creare una nuova build per i miei dispositivi di test, le modifiche vengono applicate nuovamente prima della compilazione e tutte le viste sono impostate su una larghezza fissa. Mi sta facendo impazzire.Storyboard in Xcode genera indesiderato fixedFrame = "YES" per tutte le viste in un controller

Ho cancellato i dati derivati, pulito in modo incessante il file di progetto, riavviato Xcode e la mia macchina di sviluppo.

Ho pensato che forse l'attributo XML fixedWidth era correlato all'opzione IB Autoresize Subviews, ma la commutazione non ha alcun effetto sulla generazione del materiale del frame fisso. Immagino che ci debba essere qualcosa di inaspettato in un tipo di cartella meta-workspace-data.

Potrei davvero usare qualche aiuto in più, ho cercato tutto quello che posso pensare riguardo a questo, e non sembra esserci alcuna risoluzione in vista.

+1

Che modifica hai apportato per impostarlo in primo luogo? Non utilizzo molto IB, ma non viene impostata la cornice fissa se non si dispone di vincoli sufficienti per definire completamente il layout? Li prende solo dalle taglie in IB? Cosa succede se "aggiungi i vincoli suggeriti" dal menu dei problemi di Autolayout? – jrturton

+0

Questo è esattamente quello che è successo- scopre che tutti i miei vincoli sono stati rimossi nell'intero Storyboard. In qualche modo ho inavvertitamente cancellato ogni singolo. Il che è strano, perché sono consapevole dell'opzione "rimuovi tutti i vincoli in vista", ma non di uno per rimuovere l'intero Storyboard.Ma grazie per l'input, avevi ragione sui soldi. – user

+1

Felice di aiutare. Potrebbe essere successo se la casella di auto-caricamento è stata selezionata e deselezionata? – jrturton

risposta

3

Non sono sicuro che qualcuno possa imbattersi in questo problema nello stesso modo in cui l'ho fatto, ma la risposta è che tutti i miei vincoli sono stati rimossi per tale Storyboard da qualche incidente e senza vincoli, la proprietà fixedFrame viene impostata automaticamente quando il Storyboard è generato.

Soluzione: eliminare il commit che ha provocato questo errore oppure eseguire di nuovo il layout manualmente.

2

Si può andare in e scartare gli hunk fixedFrame ...

Storyboard fixedFrame

O Ho anche scoperto che la pulizia, l'eliminazione di dati derivati, e riavviare Xcode in grado di risolvere il problema.

0

Per me questo accade quando si abilita/disabilita Classi di Dimensioni.

enter image description here

credo che questo dovrebbe essere deselezionata per impostazione predefinita, come si tende a creare delle "varianti" del vostro layout quando inavvertitamente cambiano classe corrente e quindi modificando ogni elemento dell'interfaccia.

enter image description here

mi stava cambiando molto perché il solito Assistant Editor Anteprima sembra essere disponibile in modo casuale.

In sintesi, ora evito di utilizzare le classi il più a lungo possibile. Una volta eseguito il layout di base, posso consentirgli di effettuare le regolazioni finali per le diverse dimensioni dello schermo. Cioè se i vincoli di layout automatico non fossero sufficienti.

Problemi correlati