2013-09-22 9 views
14

iOS7 mi ha davvero preso in giro.Layout ambiguo - "L'altezza è ambigua per 'Vista immagine'"

Questo è un progetto importato da iOS6 che si è svolto senza problemi su tutti i dispositivi su cui ho provato. In qualche modo la visualizzazione dell'immagine nella foto è impostata su qualcosa come 312x400 in fase di esecuzione, ignorando le specifiche per l'altezza che ho impostato nello storyboard.

Sono consapevole che mi mancano alcuni dettagli sull'autolayout ma cosa dà? Perché l'altezza che ho fornito non ha importanza, e perché è diverso da Xcode4.x/ios6?

Snapshot from Xcode5

risposta

17

Il layout della proprietà dell'immagine altezza vista è ambigua. Quando si utilizza l'autolayout, non utilizza l'altezza della vista dell'immagine in Interface Builder. Invece usa i vincoli impostati nella vista dell'immagine.

Creare un vincolo di altezza nella vista dell'immagine e impostarlo su ciò che si desidera che l'altezza sia (nel caso di un'altezza fissa). Se si desidera ridimensionare l'altezza, creare i vincoli per la parte superiore e inferiore della vista dell'immagine alla vista eccellente della vista dell'immagine. Per lo screenshot che hai fornito, potresti voler impostare un vincolo dalla parte superiore della visualizzazione dell'immagine alla guida di layout superiore.

+0

Quindi perché c'è anche la casella fittizia che mi consente di specificare un'altezza? E non posso semplicemente generare dei vincoli dal collocare l'articolo laddove appropriato in IB e impostare una dimensione fissa? – user

+1

Questi campi sono presenti in IB, quindi sa quale dimensione visualizzare la vista solo in IB (se è attivato l'autolayout). Se l'autolayout è disabilitato e il vecchio sistema di montanti e molle è abilitato, i campi vengono utilizzati per la larghezza e l'altezza in fase di esecuzione. Con l'autolayout abilitato è necessario creare vincoli se si desidera una dimensione fissa. – Andrew

0

Se si utilizza il layout automatico, e lo si è, è necessario impostare i vincoli in grado di soddisfare il layout verticale e orizzontale.

In questo caso sembra che si desideri aggiungere i vincoli di altezza e larghezza alla vista dell'immagine.

+0

Sto anche affrontando un problema simile in UICollectionView. Sto usando il layout automatico per impostare i dati in UICollectionViewCell. Ogni cosa sembra perfetta nel costruttore di interfacce. Dopo aver eseguito l'app, eseguo il debug della mia app e mostra una posizione ambigua per UIView. –

16

enter image description here

set dimensione intrinseca Placeholder.

+0

Grazie! Ciò ha permesso alla mia sottoclasse UIControl di ridimensionare per adattarsi alla dimensione del testo dell'etichetta contenuta in esso in un modo semplice, senza dover fare confusione con l'impostazione esplicita dei vincoli di larghezza ed eliminare l'avviso. –