sizeThatFits na widoku z ograniczeniami (automatyczny układ widok wewnątrz widoku układu ramek)
Zobacz układy A To subviews autorstwa obliczania i ustawiania ich klatek layoutSubviews.
Widok B używa wiązań do układu jego podobrazów.
Widok A zawiera liczbę instancji widoku B.
Widok A musi znać rozmiar swoich podobrazów, gdy je układa, dlatego wywołuje na nich numer sizeThatFits:
.
Wysokość widoku B zależy od jego szerokości. W moim przykładzie ma multilinię UILabel
w środku.
Jak należy wdrożyć B to sizeThatFits:
więc zwraca odpowiedni rozmiar biorąc zarówno parametr size
przekazany do sizeThatFits:
i ograniczeń w koncie?
Co Próbowałem/uważane do tej pory:
systemLayoutSizeFittingSize:
- nie działa, ponieważ nie uwzględnia dokładną wielkość przekazany do niego. Nie można go użyć do określenia dokładnej szerokości, np. Widoku, który rośnie pionowo, gdy kurczy się w poziomie. Daje tylko najbardziej skompresowany rozmiar lub najbardziej rozwinięty rozmiar.
intrinsicContentSize
- ten jest wykorzystywany do przekazywania informacji do Auto Layout ile mi zrozumieć z docs. Chcemy uzyskać informacje o automatycznym układzie z.
Tak jak dotąd uzasadniłem. Proszę mnie poprawić, jeśli popełniłem błąd. I pomóżcie mi, byłbym bardzo wdzięczny, gdyby ktoś mógł wskazać mi, jak to się robi!
edytuj: Być może jest jeszcze inny sposób, aby to zrobić, nawet bez korzystania z sizeThatFits:
? Jedyne, co mam, to to, że mogę dalej używać układu ramek w "zewnętrznym" widoku (Widok A) i automatycznym układzie w "wewnętrznym widoku" (Widok B).
Edit2: Dodano obrazek ilustrujący dokładnie sprawę muszę rozwiązać
Edit3: Zapomniałem wspomnieć, że trzeba wspierać iOS 7.0
Dlaczego nie umieszczasz wiązań łączących Twoje widoki B z twoim widokiem A i zmieniasz pionowy priorytet zawartości na widok A na niski? – RomOne
Ponadto, jeśli wybierzesz tę opcję, upewnij się, że wszystkie twoje widoki B mają górne i dolne ograniczenia łączące wszystkie widoki razem, tak że widok A będzie wiedział, jak zmienić rozmiar;) – RomOne
Ale to byłoby używanie automatycznego układu w widoku A, i Chciałbym wiedzieć, w jaki sposób umieć pozycjonować widoki arbitralnie za pomocą kodu (układu ramek) w widoku A podczas korzystania z wiązań w widoku B. Oczywiście układ na obrazie można łatwo uzyskać za pomocą układu automatycznego, ale czasami układ może ". wyrażać się w ograniczeniach i chciałbym się dowiedzieć, jak to się robi w takich sytuacjach. –