2013-12-08 11 views
13

Zmodyfikowałem programowo jedno ograniczenie dotyczące autolayout. Ma on wpływ na jeden określony widok, ale inne widoki ograniczone do tego widoku innymi ograniczeniami nie zmieniają swoich pozycji. Czy istnieje metoda "updateAllConstrains"?Jak mogę wyzwolić, aby zaktualizować wszystkie ograniczenia dotyczące autolayout?

+0

Może coud piszesz ekran swoimi ograniczeniami: jedynym moim zdaniem, przypuszczam, jest to, że te inne poglądy są w jakiś sposób powiązane z innymi elementami nierozciągliwymi ograniczeniami. – nikans

Odpowiedz

2

Problem polegał na tym, że ograniczenia nie zostały prawidłowo skonfigurowane, w tym przypadku pomocne mogą być wartości inne niż setNeedsLayout lub updateConstraintsIfNeeded.

28

Połącz te dwie metody na widok, który ma zostać zaktualizowany:

-setNeedsLayout 
-layoutIfNeeded 

Pierwszy mówi układowi, że ten widok musi zostać ułożony, ponieważ ma pewne zmiany i wszystko powinno zostać ponownie obliczone. Drugi wymusza uruchomienie systemu układu, system układu uruchamia się w określonych momentach podczas działania, za pomocą tej metody mówisz: "zrób to teraz".

+0

Czy mogę zmienić ograniczenia widoku obrazu poprzez kliknięcie przycisku UIBUT? Jeśli tak, proszę wyjaśnić, ponieważ jestem w tym nowy. – Sofeda

+0

Całkowicie zgadzam się z tą odpowiedzią! – Hamsternik

0

Najlepszy znalazłem to:

  1. Zaznacz elementy, które chcesz "pop" z powrotem do swoich ograniczeń

  2. Górne menu: Edytor/Aktualizacja Frames (lub /), skrót: polecenie + Option + =

Mamy nadzieję, że pomoże

Powiązane problemy