2014-10-30 9 views
8

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

6

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).

+0

Grazie. Controllerò. Speriamo che Apple implementa un modo migliore, ma in questo momento ho solo bisogno di un modo per farlo. – reshat2

1

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?