Sto utilizzando le classi di dimensioni per creare uno storyboard che può indirizzare tutte le varie dimensioni e orientamenti dello schermo. Ho lavorato nella classe di dimensione Any Width-Any Height. Ho avuto un problema con il display e ho deciso di apportare queste modifiche alla classe Larghezza compatta - Altezza normale. In un secondo momento, sono stato in grado di risolvere il problema del layout apportando modifiche ai vincoli alla classe di dimensione Any Width-Any Height. Come posso ripristinare le modifiche apportate alla classe di larghezza Compact - Altezza normale in modo che la classe di dimensione Any Width-Any Height venga utilizzata in fase di esecuzione senza ripristinare manualmente le modifiche?Come si ripristinano i dati specifici della classe di dimensioni su uno storyboard in Xcode6?
risposta
Ho avuto un problema simile in cui ho modificato alcuni vincoli per l'iPad nella classe di dimensione errata (Qualsiasi larghezza - Altezza normale anziché Larghezza regolare - Altezza normale) e ha finito per incasinare il layout per iPhone verticale. Ho finito per modificare Base.lproj/Main.storyboard
e modificato le voci appropriate <variation>
per spostare i vincoli alla classe di dimensione corretta (nel mio caso, da <variation key="heightClass=regular" ..>
a <variation key="heightClass=regular-widthClass=regular ...>
. Ci deve essere un modo migliore per farlo, ma questo hack veloce risolto il mio problema in quell'occasione . Per rimuovere variazioni, cancellando le voci di variazione corrispondenti dovrebbe funzionare (ma assicuratevi di avere una copia di backup in caso qualcosa vada storto).
XCODE7 ...
ho avuto un problema simile con le immagini inserite mentre nel regolare Larghezza (piuttosto che "Qualsiasi") non appare quando ritornai alla dimensione "wAny hAny"
Ho trovato io n il file Main.storyboard, se visto come codice piuttosto che visivamente, una sezione per la vista in questione come segue:
<variation key="default">
<mask key="subviews">
<exclude reference="bQ8-Fl-U5l"/>
<exclude reference="eyq-ch-Aan"/>
<exclude reference="pm5-gT-AYv"/>
<exclude reference="LJc-xi-hYb"/>
<exclude reference="y0y-l5-aTs"/>
<exclude reference="cLR-e1-OJo"/>
</mask>
<mask key="constraints">
</mask>
</variation>
<variation key="widthClass=regular">
<mask key="subviews">
<include reference="bQ8-Fl-U5l"/>
<include reference="eyq-ch-Aan"/>
<include reference="pm5-gT-AYv"/>
<include reference="LJc-xi-hYb"/>
<include reference="y0y-l5-aTs"/>
<include reference="cLR-e1-OJo"/>
</mask>
Risulta che la sezione si riferisce alla "Qualsiasi-Qualsiasi" caso, e la rinvia alla specifica Classe di Dimensioni con cui stavo giocando (essendo Larghezza Regolare, Qualsiasi Altezza).
Per risolvere il problema, ho eliminato gli elementi ESCLUDI dalla sezione predefinita e ELIMINATO le stesse voci che erano state aggiunte alla sezione regolare. Quella sezione del codice sembra quindi ...
<variation key="default">
<mask key="subviews">
</mask>
<mask key="constraints">
</mask>
</variation>
<variation key="widthClass=regular">
<mask key="subviews">
</mask>
Sembra aggiustarlo. Whacky, eh?
Grazie. Controllerò. Speriamo che Apple implementa un modo migliore, ma in questo momento ho solo bisogno di un modo per farlo. – reshat2