2014-10-19 8 views
5

Ricevo uno strano comportamento con le classi di dimensioni in Xcode 6. Non sono riuscito a scoprire se si tratta di un bug o di una documentazione errata.Classe di dimensioni wCompact | hAny viene sovrascritta da wCompact | hRegular

Il fatto è: devo fornire diversi layout uno per iPhone 3,5, 4, 4,7 pollici e un altro per dispositivo da 5,5 pollici.

Ho creato un semplice esempio per dimostrare il bug: l'etichetta ha 2 vincoli - centro X e Y all'interno del contenitore. enter image description here

ho impostato la costante di 100 per wCompact|hAny e -100 per wCompact|hRegular Y vincolo di allineamento. enter image description here

L'interfaccia utente guarda bene in Interface Builder, ma non in anteprima - i parametri wCompact|hRegular sostituiscono wCompact|hAny.

enter image description here enter image description here enter image description here enter image description here

Sono confondersi con le informazioni dalla finestra pop-up che si pone in IB quando si desidera modificare le dimensioni del vostro vc.

enter image description here enter image description here

Quindi non v'è un modo per specificare i vincoli per le piccole iPhone e avere quelli diversi per il grande schermo 5.5?

+1

Avete aggiornamenti su questo? Ho lo stesso problema. C'è un'immagine che voglio rendere più grande per 5.5 in iPhone, ma quando si modifica il vincolo, wC | hR sovrascrive sempre wC | hA. Storyboard lo visualizza bene quando si passa da una classe di dimensioni diverse, ma la finestra di anteprima mostra le stesse dimensioni per tutte le dimensioni di iPhone. – schystz

+0

Non ho avuto fortuna finora con questo problema. –

risposta

2

È il comportamento desiderato, si sceglie la larghezza | Qualsiasi combinazione di altezza per prendere decisioni di layout che si applicano a tutte le dimensioni e gli orientamenti possibili del dispositivo, ma scegliere la larghezza compatta | Combinazione di altezza regolare per specificare le modifiche al layout che si applicano solo alle dimensioni che somigliano ai dispositivi iPhone con orientamento verticale.

Quindi i parametri Compact Width | Any Height sovrascriveranno i parametri Any Width | Any Height per i dispositivi iPhone con orientamento verticale e orizzontale. I parametri Compact Width | Regular Height sovrascrivono i parametri Compact Width | Any Height per i dispositivi iPhone con orientamento verticale. La regola generale è la classe di dimensioni specifiche che sovrascrive quelle più generali. Nel tuo caso, se ruoti verso l'orientamento orizzontale, l'origine dell'etichetta Y è sopra l'origine Y del centro con una distanza di 100, che non è stata sovrascritta.

+0

Bene, potresti notare dei punti verde-blu che appaiono in posizioni diverse mentre selezioni le dimensioni. wC | hR è più speficic di wC | hA - Non pensi che dovrebbe applicarsi __only__ a iphone 5.5 ma non per tutti gli altri? Ho pensato che fosse abbastanza ovvio e intuitivamente previsto ... –

+0

Vuoi dire che wC | hR dovrebbe essere applicato solo a iPhone 5.5? Il suggerimento dice che si applica a tutti gli iPhone in verticale, mentre wR | hC si applica solo agli iPhone 5,5 pollici in orizzontale. Non so perché. Da quello, penso che puoi mettere un diverso vincolo per lo schermo 5.5 in orizzontale. – gabbler

Problemi correlati