Ich habe Autolayout verwendet, um neue Einschränkungen hinzuzufügen, um einfache Einschränkungen für die Übersicht / relative Ansicht wie diese festzulegen (für eine lange Zeit):
Kürzlich, nachdem ich auf den neuesten xcode (11.3.3 oder nur 11.3 / 11C29) aktualisiert wurde, habe ich dieses seltsame Problem: Wenn ich die Konstante = 0 setze, erzeugen sie die Einschränkungen immer auf unerwünschte Weise wie folgt:
Und es scheint, dass der Standardwert irgendwie 20 ist und meine Ansicht so falsch aussieht (0 im Vergleich zu 20?)
Wenn ich das behebe, indem ich die Einschränkung wie folgt bearbeite:
Dann wird es wieder korrigiert (das Bild ist nach dem Bearbeiten der Einschränkungen, vor dem Bearbeiten zeigt es Konstante = Standard
)
Ich weiß nicht einmal, wie ich das Problem beschreiben soll, aber wie behebe ich dieses neue Problem, add new constraint
um meinen Wunschpunkt anstelle von Standard / Standard zu verwenden?
Aktualisieren:
Es scheint nur passiert zu sein, wenn die Übersicht eingeschränkt ist. Keine Ahnung, wie man das behebt.
Update 01.04.2020:
Xcode11.4 hat dies behoben.
standard
Wert zu definieren (damit wir 10 oder 0 anstelle von setzen könnendefault = 8
), aber ich habe vergessen, wo er jetzt ist. Oder haben sie die Funktion entfernt?Antworten:
Scheint wie ein Fehler (vergessen Sie nicht, bei Apple zu archivieren). Hier ist eine einfache Problemumgehung:
Wenn Sie in der Zahl in dem „popover“, statt Tippen füllen
0
, geben0.01
. Dies verhindert, dass sich die Nummer auf mysteriöse Weise in "Standard" ändert. Okay, es0.01
ist nicht dasselbe wie,0
aber es ist nah genug, dass Sie den Unterschied nicht erkennen können, und zumindest müssen Sie nicht zurückgehen und ihn später ändern.BEARBEITEN Apple sagt, dass dieser Fehler in Xcode 11.4 behoben wird:
quelle
Während @matt Workaround funktioniert, möchte ich nur hinzufügen, dass Sie es auf 0,01 setzen und dann auf 0 ändern können, es wird nicht wieder auf den Standardwert geändert. Hinweis: Xcode 11.3
quelle
Ab Xcode 11.3.1:
Die sauberste und schnellste Lösung, die ich gefunden habe, lautet wie folgt:
Geben Sie einfach
-0
in das Einschränkungsfeld ein. Xcode scheint das Negativ zu verwerfen und verhält sich korrekt, was besser ist als das Lesen0.01
für alles.Sie können alle Einschränkungen gleichzeitig einfügen, ohne dass Sie jeweils eine ausführen oder später bearbeiten müssen.
Xcode zeigt die Werte wie folgt an
Es scheint wirklich dummes Verhalten zu sein. Gibt es einen Grund, warum Apple dies absichtlich veranlasst hat ...?
Bearbeiten: Dies scheint nicht jedes Mal zu funktionieren , was frustrierend ist. Ich hatte gerade eine UIImageView-Show 0 für Superview, aber visuell immer noch den Standardwert (20). Dies scheint wirklich ein Fehler mit dem IB zu sein, da das Verhalten völlig unlogisch ist.
quelle
Dieses Verhalten scheint auf Xcode 11.4 festgelegt werden: Release Notes
Ursprüngliche Antwort:
Ich habe gerade auch dieses Verhalten festgestellt. Ich habe versucht, die Einschränkungen 1 zu 1 hinzuzufügen, und Xcode hat den Wert 0 tatsächlich eingehalten.
Meine zwei Cent.
quelle
Ich weiß, dass dies keine Lösung ist, aber für eine vorübergehende Lösung, die verhindert, dass Sie alle Einschränkungen durchlaufen, habe ich gerade herausgefunden, dass Sie das gewünschte Verhalten erhalten, wenn Sie '-0' anstelle von '0' einfügen, aber Sie müssen eine einfügen Einschränkung jedes Mal.
quelle
In der Zwischenzeit gibt es keine Möglichkeit, dieses Problem zu lösen
Die beste vorübergehende Lösung besteht jedoch darin, die Einschränkungen nacheinander mit Null zu addieren.
quelle
ignoriere das wenn standard.
Klicken Sie nach dem Hinzufügen auf Einschränkung (blaue Linie) und Inspektor, um das Attribut einzuschränken und auf 0 zu setzen.
diese Arbeit für mich
quelle
Dieser Fehler tritt immer noch auf (Xcode 11.3.1). Es wurde behoben, indem einfach die Einschränkungen als "Standard" hinzugefügt wurden, dann auf die blauen Einschränkungslinien geklickt und die "Konstante" unter "Größeninspektor" auf 0 gesetzt wurde.
quelle