2015-09-28 7 views
7

Ho una vista personalizzata che deve essere visualizzata su tutti i dispositivi iPhone (4, 4S, 5, 5S, 6 e 6 Plus). Quando ho creato la vista personalizzata XIB, l'ho menzionata come "Inferred", ma non si sta ridimensionando per i dispositivi iPhone 6 e iPhone 6 Plus. Non sono in grado di capire il problema. Sono confuso su quali sarebbero le reali differenze tra "Inferred" e "Freeform". Qualcuno può spiegare le differenze?Qual è la differenza tra "Inferred" e "Freeform" in Xcode Storyboard?

risposta

9

Inferiore ridimensiona la scena in base alla scena principale. Ad esempio, se hai una scena delle dimensioni di un iPad e quindi aggiungi una nuova scena allo storyboard e ne crei una sequenza, verrà ridimensionata automaticamente alle stesse dimensioni della scena iPad (da cui proviene il seguito) .

Freeform ignora la regola precedente e sei in grado di ridimensionarlo come meglio credi, nel riquadro utility a destra.

Entrambi questi tuttavia non hanno nulla a che fare con il modo in cui la vista viene visualizzata e ridimensionata sui dispositivi reali. Per questo è necessario utilizzare auto layout e vincoli. O springs and struts. Alcuni addirittura lo fanno nel codice se hanno bisogno di maggiore flessibilità.

2

"Inferred" è l'impostazione predefinita per gli storyboard e significa che la scena mostrerà una barra di navigazione quando si trova all'interno di un controller di navigazione, una barra delle schede quando si trova all'interno di un controller della barra delle schede e così via. Potresti sovrascrivere queste impostazioni se lo desideri, ma tieni presente che sono qui solo per aiutarti a progettare i tuoi schermi. Le metriche simulate non vengono utilizzate durante il runtime, sono solo un ausilio visivo che mostra come dovrebbe apparire lo schermo.

"FreeForm" Di solito si utilizza la proprietà freeform quando si aggiunge il controller di visualizzazione come un bambino a un altro controller di visualizzazione a livello di codice e si desidera avere quella dimensione fissa.Se si spinge il controller di visualizzazione o lo si presenta come vista modale controller (e si utilizzano gli stili di presentazione modali) quindi non è necessario utilizzare freeform. Anche un altro uso della proprietà freeform è di visualizzare in anteprima le dimensioni effettive del controller di visualizzazione quando viene presentato come controller di visualizzazione modale utilizzando stili di presentazione esistenti.

Problemi correlati