Xcode 11 dodaje nowe ograniczenia set zero: użyj set value zamiast default / standard


74

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):

wprowadź opis zdjęcia tutaj

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:

wprowadź opis zdjęcia tutaj

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:

wprowadź opis zdjęcia tutaj

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 constraintaby 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.


2
Mam ten sam problem. Myślę, że pojawiło się to po raz pierwszy, kiedy zaktualizowałem aktualizację do wersji 11.3 UPD: Ten sam projekt nie ma tego problemu na innym komputerze z tą samą wersją xcode. Może jest to związane z konfiguracją IDE, a może to błąd samego IDE.
Dmitrij Rogov,

1
Ten sam problem tutaj. Używanie Xcode 11.3 (11C29).
user525504,

1
Ten sam problem Wersja 11.3 (11C29)
832

1
@DmitrijRogov Pamiętałem czasami wcześniej (xcode 8,9 lub 10), gdzieś jest ustawienie, które pomaga nam zdefiniować standardwartość (dzięki czemu możemy ustawić 10 lub 0 zamiast default = 8), ale zapomniałem, gdzie jest teraz. A może usunęli tę funkcję?
Eddie

5
Doprowadza mnie to do szału
Buyin Brian,

Odpowiedzi:


37

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, wpisz 0.01. Zapobiegnie to tajemniczej zmianie numeru na „Standardowy”. Okej, więc 0.01to nie to samo, 0ale 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:

Naprawiono błąd, który uniemożliwiał wprowadzenie stałej 0 w edytorach wyskakujących ograniczeń. (54076090)


1
fajna robota, dzięki!
Eddie

1
Świetny! Co może denerwować ten problem ...
Joaquin Pereira

Działa dobrze, gdy używam 0,01 zamiast 0
Teja

Ale ustawienie go na 0 za drugim razem działa. Po co zawracać sobie głowę 0,01? To i tak dość denerwujące. Dobrze, że to błąd, a nie „funkcja”.
Vlad Rusu

11

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


Dla mnie, kiedy zmienię go z powrotem na 0, to znów zmieni się na „standardowy”. Xcode 11.3.1.
John Scalo

10

Począwszy od Xcode 11.3.1:

Najładniejsze i najszybsze rozwiązanie, jakie znalazłem, jest następujące:

Po prostu wpisz w -0pole ograniczenia. Wygląda na to, że Xcode odrzuca negatyw i zachowuje się poprawnie, co jest lepsze niż czytanie 0.01we 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.


9

To zachowanie wydaje się być naprawione w Xcode 11.4: informacje o wersji

Naprawiono błąd, który uniemożliwiał wprowadzenie stałej 0 w edytorach wyskakujących ograniczeń. (54076090)


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.


Tak, właśnie zauważyłem, że w informacjach o wydaniu dobra robota.
mat

5

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.


jest to właściwie dobra opcja, dodając „-0” podczas tworzenia ograniczeń będzie w inspektorze „0”, nie trzeba tam iść i je zmieniać
busta117

1

W międzyczasie nie ma sposobu na rozwiązanie tego problemu

ale najlepszym rozwiązaniem tymczasowym jest dodawanie ograniczeń zerowych jeden po drugim.


0

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


0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.