2011-09-07 12 views

risposta

21

Sì, è spesso necessario impostarlo se non si desidera ridimensionare manualmente le viste. Nota che è utile soprattutto per le sottoview (cioè quelle viste che non occupano tutto lo schermo) piuttosto che la vista principale della tua app.

Visualizzazioni tipicamente possono avere bisogno di ridimensionamento se:

  • il dispositivo viene ruotato
  • una vista extra (per esempio, un annuncio) viene aggiunto alla vista, in modo che i subviews esistenti hanno meno spazio a disposizione.

Ad esempio, supponiamo di avere una vista con due pulsanti, uno nell'angolo in alto a sinistra e un altro nell'angolo in alto a destra. Affinché i pulsanti si allarghino quando la vista passa da verticale a orizzontale, è necessario impostare FlexibleLeftMargin sul pulsante destro, FlexibleRightMargin sul pulsante sinistro.

Modifica: autoresizingMask è anche la prima cosa da vedere se si vedono strani buchi o sovrapposizioni quando il dispositivo viene ruotato o viene aggiunta una nuova sottoview. Molto spesso l'impostazione corretta di queste maschere per le sottoview può darti una bella visuale in entrambi gli orientamenti senza dover distribuire manualmente le sottoview, ma in genere ci vogliono alcuni esperimenti.

Edit2: (poiché questo sta ancora raccogliendo gli upvotes) Le maschere di autoresizing sono ora sostituite con "Auto Layout", che consente vincoli molto più flessibili sulle dimensioni e le posizioni delle viste. Detto questo, translateAutoresizingMaskIntoConstraints è ancora occasionalmente utile per le viste aggiunte dinamicamente.

+4

Non dimenticare la doppia altezza "In Call" barra di stato! Puoi replicarlo abbastanza facilmente registrando un memo vocale e passando alla tua app. –

4

Lo scopo è che UIView sposta correttamente e ridimensiona quando è modifiche Superview a causa di ridimensionamento, il cambiamento dell'orientamento, mostrando controlli di modifica nelle celle Tableview ecc