2016-07-03 25 views
2

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.

enter image description here

Alles sieht im Storyboard Editor Ansicht fein:

enter image description here

... aber wenn ich meine app starten, gehen die Layout-Ränder auf den Standard zurück (8,8, 8,8):

enter image description here

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:

  1. einen neuen View-Controller in IB erstellen.
  2. Fügen Sie eine Ansicht hinzu und legen Sie die Layout-Ränder auf explizit fest (30,8,8,8)
  3. Erstellen Sie eine obere, linke, Breite und Höhe Einschränkungen für die Ansicht.
  4. Geben Sie der Ansicht eine Hintergrundfarbe, damit Sie leicht erkennen können, ob das Etikett korrekt eingerückt ist oder nicht.
  5. Fügen Sie ein Label als Unteransicht dieser Ansicht hinzu und heften Sie es an den oberen und linken Rand.
  6. Beachten Sie, dass das Label im Storyboard um 30 Pixel von links eingerückt ist.
  7. 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.

+0

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

Antwort

0

schauen, wie es in Xcode 8.

jedoch festgelegt ist, wenn Sie den Wert layoutMargins in viewDidLoad versuchen Lesung wird es nicht den eingestellten Wert berichten im Storyboard. Sie müssen warten, bis eine spätere Methode aufgerufen wird, z. B. viewDidAppear, um den korrekten Wert zu sehen.

+0

Hmm. Ich benutze 8.2.1, und ich sehe immer noch das Problem, wenn ich explizite Ränder in den contentView's der Tabellenansichtzellen verwende. :( – NRitH