2010-10-22 13 views
20

Ho due viewControllers, uno è una sottoclasse di UIViewController (si autorizza correttamente), l'altro è una sottoclasse di una sottoclasse di UIViewController.
Ho fatto un layout in Interface Builder, ho testato il mio codice nel simulatore e tutto funziona come previsto. Ma se ruoto il dispositivo, le mie viste non vengono ridimensionate.
Così sono tornato a Interface Builder e ho scoperto che non posso modificare la proprietà Resizing della "root" -UIView. Così ho aperto un altro file e la proprietà di ridimensionamento è stata riparata anche lì. Ma è impostato per ridimensionare in entrambe le direzioni. Questo è il comportamento che voglio.Problema durante l'impostazione di autosizing nel generatore di interfacce

Come è possibile modificare l'autorizzazione del primo UIView in modo che faccia ciò che voglio?
Non ci sono così tante sottoview che è impossibile ricominciare da zero, ma non voglio farlo.

Interface Builder, Autoresizing Mask

risposta

24

mi sono imbattuto in questa prima ed è stato incredibilmente frustrante. Si scopre che quando hai attivato gli elementi dell'interfaccia utente simulati, non puoi cambiare i montanti e le molle come desideri.

Passare alla scheda Attributi (Cmd-1) e assicurarsi che barra di stato, barra superiore, barra inferiore e vista divisa siano tutti impostati su "Non specificato". Quindi torna alla scheda Dimensione (Cmd-3) e sarai in grado di fare clic sulle linee e modificare i tuoi puntoni e molle. Quindi finalmente puoi tornare a Cmd-1 e riattivare quegli elementi simulati.

+0

Si ottiene una stella d'oro per questo. GRAZIE! – sean808080

+0

'cmd + 1' apre il' Progetto navigatore' !!!!!!!!!!!!!!!!! –

+0

@lulian, Questo perché Xcode ha cambiato i tasti di scelta rapida. Nel 2011, questo era corretto. –

13

ho una risposta semplificata:

  1. Goto IB
  2. Cliccare sulla 'ViewController'
  3. Goto 'Attributi'
  4. Change 'Taglia' a 'mano libera' (qualcosa di diverso 'Ricavata')

quello che hai è questo:

enter image description here

Modificare "dimensione" su "freeform" & provare ora!

enter image description here

Ora, funziona! Torna indietro & cambialo in "Inferuto" dopo aver impostato le maschere di autoresatura.

+0

Eccellente, grazie. – Robert

0

Aprire Main.storyboard come sorgente (non dimenticare, è solo un file XML) e sostituire tag "autoresizingMask" nella vista con la seguente riga:

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 
Problemi correlati