In meinem Storyboard legte ich die Layout-Ränder in meiner Ansicht auf Explizit mit einem Wert von 30 für die linke Seite fest.Explizite Layout-Ränder, die im Storyboard definiert sind, werden zur Laufzeit verworfen.
Alles sieht im Storyboard Editor Ansicht fein:
... aber wenn ich meine app starten, gehen die Layout-Ränder auf den Standard zurück (8,8, 8,8):
Versuch, den Wert zu lesen programmaticall y (myView.layoutMargins
) zeigt diesen Standardwert wieder. Es ist so, als ob, egal welchen Wert ich in den Layout-Rändern einstelle, es zur Laufzeit absolut nichts tut.
zu reproduzieren:
- einen neuen View-Controller in IB erstellen.
- Fügen Sie eine Ansicht hinzu und legen Sie die Layout-Ränder auf explizit fest (30,8,8,8)
- Erstellen Sie eine obere, linke, Breite und Höhe Einschränkungen für die Ansicht.
- Geben Sie der Ansicht eine Hintergrundfarbe, damit Sie leicht erkennen können, ob das Etikett korrekt eingerückt ist oder nicht.
- Fügen Sie ein Label als Unteransicht dieser Ansicht hinzu und heften Sie es an den oberen und linken Rand.
- Beachten Sie, dass das Label im Storyboard um 30 Pixel von links eingerückt ist.
- Führen Sie die App aus. Beachten Sie, dass die Beschriftung den 30-Pixel-Einzug verliert und stattdessen auf die Standard-8-Pixel zurückgesetzt wird.
Hinweis: Ich verwende Xcode 7.
Wenn Sie es in einer so einfachen Art und Weise reproduzieren können, scheint es wie ein guter Kandidat für [einen Fehlerbericht] (http://bugreport.apple.com) –