2015-01-07 13 views
7

Lo schermo di iPhone 6S Plus è molto grande rispetto alle altre dimensioni dello schermo. Non riesco a trovare un buon modo per gestire la dimensione del carattere di un'etichetta senza regolare le dimensioni a livello di codice.Come si gestiscono le dimensioni del font di iPhone 6S Plus?

Come posso regolare la dimensione del carattere di un'etichetta in modo che appaia più piccola su un iPhone 5 e più grande su un iPhone 6 Plus?

+0

Che cosa significa "controlla la sua classe di dimensioni"? Xcode consente di creare vincoli che sono condizionali in base alla classe di dimensioni. Che problema rimane? Inoltre, che cosa significa "le etichette appaiono incasinate" significa? _Le mie etichette non sono "incasinate" su un iPhone 6 Plus, quindi non dovresti chiederti perché sono i tuoi? – matt

+0

Grazie per aver risposto alla mia domanda Matt. Il problema è che le classi di dimensioni che usi per controllare le dimensioni dell'altro iPhone non sono abbastanza accurate. Ad esempio, se inserisco un'etichetta nella parte superiore di UIViewController, la stessa etichetta sembra buona su un iPhone da 4 pollici, ma non su un iPhone Plus e ha bisogno di un ridimensionamento. La cosa brutta è che non posso ridimensionarlo perché iPhone 6 Plus non ha la sua classe di dimensioni, quindi devo mantenere i vincoli di altri iPhone. – Cesare

+2

Scopri come funziona il layout automatico. – Fogmeister

risposta

5

Non modificare le dimensioni dei caratteri per l'iPhone 6 o iPhone 6+.

Le persone acquistano questi telefoni per vedere più contenuti. Il 6+ mostra comunque le cose leggermente più grandi degli altri telefoni (sì, ha pixel più grandi, non solo più pixel), e se un utente vuole uno schermo ancora più grande può passare all'intero telefono alla modalità zoom (sia 6+ che 6 ; questo trasforma un 6+ in un grande 6, e un 6 in un grande 5).

Basta usare l'autolayout per posizionare le cose in relazione alle dimensioni dello schermo.

+2

_ "Le persone acquistano questi telefoni per vedere più contenuti." _ Tale affermazione non è vera onnipotente. – holex

1

Non è possibile scegliere come target iPhone 6 Plus utilizzando AutoLayout perché non è pensato per le dimensioni di hardcoding. Si sia bisogno di usare il codice e fare qualcosa del genere:

if UIScreen.mainScreen().bounds.size.width == 375 { 
    // iPhone 6 
    label.font = label.font.fontWithSize(20) 
} 

o just create a invisible view and set top and bottom constraints to it.

+0

Questo non funziona in modalità orizzontale. E si interrompe se l'utente sceglie da solo un font grande. E naturalmente si romperà se l'iPhone 7 è largo 380 pixel. – gnasher729

1

penso che sia meglio utilizzare i caratteri adattivi (here è un esempio, la sezione Adaptive Fonts)

Problemi correlati