Kiedyś korzystałem z funkcji automatycznego układania, aby dodawać nowe ograniczenia, aby tworzyć proste ograniczenia do widoku podglądu / widoku względnego w ten sposób (przez długi czas):
Jednak ostatnio, po aktualizacji do najnowszego xcode (11.3.3 lub tylko 11.3 / 11C29), mam ten dziwny problem: kiedy ustawiam stałą = 0, zawsze generują ograniczenia w niepożądany sposób, taki jak ten:
I wydaje się, że wartość domyślna to w jakiś sposób 20, przez co mój widok wygląda tak źle (0 w porównaniu do 20?)
Jeśli naprawię to, edytuję takie ograniczenie:
Następnie poprawi się ponownie (obraz jest po edycji wiązań, przed edycją wyświetla stałą = Standard
)
Nie wiem nawet, jak opisać problem, ale jak to naprawić, add new constraint
aby użyć mojego punktu pożądania zamiast standardowego / domyślnego?
Aktualizacja:
Wydaje się, że stało się to tylko wtedy, gdy ograniczenie do nadzoru. Nie mam pojęcia, jak to naprawić.
Aktualizacja 01.04.2020:
Xcode 11.4 naprawił to.
standard
wartość (dzięki czemu możemy ustawić 10 lub 0 zamiastdefault = 8
), ale zapomniałem, gdzie jest teraz. A może usunęli tę funkcję?Odpowiedzi:
Wygląda na błąd (nie zapomnij złożyć pliku w Apple). Oto proste obejście:
Po wpisaniu liczby w „okienku popover” zamiast pisać
0
, wpisz0.01
. Zapobiegnie to tajemniczej zmianie numeru na „Standardowy”. Okej, więc0.01
to nie to samo,0
ale jest na tyle blisko, że nie możesz odróżnić, a przynajmniej nie musisz wracać i zmieniać go później.EDYCJA Apple mówi, że ten błąd zostanie naprawiony w Xcode 11.4:
źródło
Podczas gdy obejście @matt działa, chcę tylko dodać, że możesz ustawić go na 0,01, a następnie zmienić na 0, nie zmieni się on ponownie na wartość standardową. Uwaga: Xcode 11.3
źródło
Począwszy od Xcode 11.3.1:
Najładniejsze i najszybsze rozwiązanie, jakie znalazłem, jest następujące:
Po prostu wpisz w
-0
pole ograniczenia. Wygląda na to, że Xcode odrzuca negatyw i zachowuje się poprawnie, co jest lepsze niż czytanie0.01
we wszystkim.Możesz wstawić wszystkie ograniczenia na raz, bez konieczności ich robienia pojedynczo lub przejścia i edycji później.
Xcode wyświetla wartości w ten sposób
To wydaje się naprawdę głupie zachowanie. Czy istnieje powód, dla którego Apple mogło to zrobić celowo ...?
Edycja: Wydaje się, że nie działa to za każdym razem , co jest frustrujące. Właśnie miałem UIImageView pokaż 0 do Superview, ale wciąż wizualnie mam domyślną wartość (20). To naprawdę wydaje się błędem w IB, ponieważ zachowanie jest całkowicie nielogiczne.
źródło
To zachowanie wydaje się być naprawione w Xcode 11.4: informacje o wersji
Oryginalna odpowiedź:
Właśnie to znalazłem, próbowałem dodać ograniczenia 1 na 1, a Xcode faktycznie przestrzegał wartości 0.
Moje dwa centy.
źródło
Wiem, że to nie jest rozwiązanie, ale dla tymczasowego rozwiązania, które nie pozwoli ci przejść przez wszystkie ograniczenia, właśnie dowiedziałem się, że otrzymujesz pożądane zachowanie, jeśli wstawisz „-0” zamiast „0”, ale musisz wstawić jedno ograniczenie za każdym razem.
źródło
W międzyczasie nie ma sposobu na rozwiązanie tego problemu
ale najlepszym rozwiązaniem tymczasowym jest dodawanie ograniczeń zerowych jeden po drugim.
źródło
zignoruj to, gdy jest standardem.
po dodaniu kliknij na ograniczenia (niebieska linia) i inspektora, aby ograniczyć atrybut i ustawić go na 0.
to działa dla mnie
źródło
Nadal występuje ten błąd (Xcode 11.3.1). Naprawiono to, dodając wiązania jako „standardowe”, a następnie klikając niebieskie linie wiązań i ustawiając „stałą” pod inspektorem wielkości na 0.
źródło