2013-09-22 12 views
14

iOS7 naprawdę mnie szarpał.Niejednoznaczny układ - "Wysokość jest niejednoznaczna w przypadku" widoku obrazu ""

To jest projekt importowany z iOS6, który działał płynnie na wszystkich urządzeniach, na których testowałem. W pewnym momencie widok obrazka zostaje ustawiony na wartość zbliżoną do 312x400, ignorując specyfikację wysokości ustawianą w serii ujęć.

Mam świadomość, że brakuje mi pewnych szczegółów dotyczących autolayout, ale co daje? Dlaczego podana wysokość nie ma żadnego znaczenia i dlaczego różni się od Xcode4.x/ios6?

Snapshot from Xcode5

Odpowiedz

17

Układ dla właściwości obrazu widok wysokość jest niejednoznaczna. Podczas korzystania z funkcji autolayout nie wykorzystuje ona wysokości widoku obrazu w programie Interface Builder. Zamiast tego korzysta z ograniczeń ustawionych w widoku obrazu.

Utwórz ograniczenie wysokości w widoku obrazu i ustaw jego wysokość (w przypadku stałej wysokości). Jeśli chcesz, aby wysokość była skalowana, utwórz wiązania dla górnej i dolnej części widoku obrazu w widoku super widoku obrazu. W przypadku zeskanowanego zrzutu możesz ustawić ograniczenie od górnej części widoku obrazu do przewodnika najlepszego układu.

+0

Dlaczego więc istnieje nawet pole manekina, które pozwala mi określić wysokość? Czy nie mogę po prostu wygenerować ograniczeń związanych z umieszczeniem elementu w razie potrzeby w IB i ustaleniem stałego rozmiaru? – user

+1

Te pola istnieją w IB, więc wie, jaki rozmiar wyświetlić widok tylko w IB (jeśli włączone jest autolayout). Jeśli autouzupełnianie jest wyłączone, a stary system rozpórek i sprężyn jest włączony, pola są używane dla szerokości i wysokości w czasie wykonywania. Przy włączonym autolayout musisz utworzyć więzy, jeśli chcesz mieć stały rozmiar. – Andrew

0

Jeśli korzystasz z automatycznego układu, musisz ustawić wiązania, które mogą spełniać układ pionowy i poziomy.

W tym przypadku wygląda na to, że warto dodać ograniczenia wysokości i szerokości do widoku obrazu.

+0

Mam również podobne problemu w UICollectionView.I używam automatycznego układu do ustawiania danych w UICollectionViewCell. Każda rzecz wygląda doskonale w programie budującym interfejs. Po uruchomieniu aplikacji debuguję aplikację i pokazuje ona niejednoznaczną pozycję dla UIView. –

16

enter image description here

zestaw wewnętrzna wielkość jako zastępczy.

+0

Dziękujemy! Dzięki temu moja podklasa UIControl mogła się dopasować do rozmiaru tekstu etykiety, który był w nim w łatwy sposób, bez konieczności bałaganu z jawnymi ograniczeniami szerokości i pozbył się ostrzeżenia. –

Powiązane problemy