Benutzerdefinierter UIViewController-Übergang hat einen falschen topLayoutGuide und bottomLayoutGuide gesetzt, wenn die Anrufleiste aktiv ist

9

Ich habe ein UIViewController , das ein anderes UIViewController präsentiert. Beide View-Controller verwenden topLayoutGuide und bottomLayoutGuide mit Auto-Layout.

Alles ist in Ordnung, mit und ohne In-Call-Bar. Oder mit oder ohne benutzerdefinierten Übergang ...

Aber , wenn eine In-Call-Leiste und ein benutzerdefinierter Übergang ist, wird die Unteransicht meines präsentierten View-Controllers um 20px nach unten verschoben (was zu einer abgeschnittenen Ansicht führt) ganz unten).

Ich habe überprüft, und es sind die topLayoutGuide und bottomLayoutGuide , die falsch platziert sind ...

Hier ist der Code des Übergangs:

%Vor%

Hier ist der Code des Präsentierens:

%Vor%     
AncAinu 30.03.2015, 14:15
quelle

1 Antwort

0

Beim Erstellen der Ansichten für Ihre Ansichtshierarchie sollten Sie immer die Autorisierungseigenschaften Ihrer Ansichten festlegen. Wenn ein Ansichts-Controller auf dem Bildschirm angezeigt wird, wird seine Grundansicht in der Regel an den verfügbaren Platz angepasst, der je nach der aktuellen Ausrichtung des Fensters und dem Vorhandensein anderer Schnittstellenelemente wie der Statusleiste variieren kann. Sie können die Autorisierungseigenschaften in Interface Builder im Inspektorfenster oder programmgesteuert konfigurieren, indem Sie die Eigenschaften autoresizesSubviews und autoresizingMask jeder Ansicht ändern. Das Festlegen dieser Eigenschaften ist auch wichtig, wenn der View-Controller Hoch- und Querformat unterstützt. Während einer Orientierungsänderung verwendet das System diese Eigenschaften, um die Ansichten automatisch neu zu positionieren und ihre Größe zu ändern, um sie an die neue Ausrichtung anzupassen. Wenn Ihr Ansichts-Controller das automatische Layout unterstützt und ein untergeordnetes Element eines anderen Ansichtscontrollers ist, sollten Sie die setTranslatesAutoresizingMaskIntoConstraints: -Methode der Ansicht aufrufen, um diese Einschränkungen zu deaktivieren.

    
quelle