Swift Safe Area Layout-Handbuch und Visual Format Language

10

Ich möchte die Visual-Format-Sprache von Apple verwenden, um eine Ansicht auf den neuen Leitfaden für sichere Bereiche zu beschränken in iOS 11. Ich bekomme jedoch eine Ausnahme:

  

- [NSLayoutYAxisAnchor nsli_superitem]: nicht erkannter Selektor, der an Instanz 0x1c447ed40 gesendet wurde

%Vor%

Der Grund, warum ich visuelle Formatsprache mag, ist, dass Sie in einigen Fällen viele Einschränkungen mit weniger Code hinzufügen können.

Irgendwelche Ideen?

    
Jon Vogel 28.09.2017, 22:41
quelle

3 Antworten

18
  

Ich möchte die visuelle Sprache von Apple verwenden, um eine Ansicht auf das neue Safe Area Layout Guide zu beschränken.

Sie können nicht. Es gibt keinen Zugriff auf den Layout-Guide für den sicheren Bereich über die visuelle Formatsprache. Ich habe einen Fehler bei diesem Thema eingereicht, und ich schlage vor, dass Sie dasselbe tun.

    
matt 28.09.2017 23:43
quelle
6

Ich weiß, dass es nicht VFL ist, aber es gibt eine Factory-Klasse namens NSLayoutAnchor , mit der Constraints erstellt werden können etwas sauberer und prägnanter.

Zum Beispiel konnte ich den oberen Anker eines UILabel mit einer kompakten Linie an den oberen Anker des sicheren Bereichs anheften:

%Vor%

Beachten Sie, dass safeAreaLayoutGuide iOS 11 erfordert. Ersetzen Sie für ältere Versionen self.view.safeAreaLayoutGuide.topAnchor von self.topLayoutGuide.bottomAnchor .

Auch hier weiß ich, dass es nicht VFL ist, aber das scheint das zu sein, was wir jetzt haben.

    
Moebius 13.11.2017 12:42
quelle
5

Wir haben die visuelle Formatierungssprache hier ein wenig erweitert, so dass Sie nun "& lt; |" wenn du safeAreaLayoutGuide meinst. Ich wünschte, Apple hätte so etwas gemacht.

Wenn Sie beispielsweise den folgenden Code vor iOS 11 haben:

%Vor%

Und jetzt wollen Sie sicherstellen, dass der Knopf über dem sicheren unteren Rand auf dem iPhone X sitzt, dann tun Sie das:

%Vor%

Das ist es. Es verankert den Button unter iOS 9 und 10 am unteren Rand seines SuperViews, verankert ihn aber unter iOS 11 am unteren Rand seines safeAreaLayoutGuide.

Bitte beachten Sie, dass "| & gt;" nach oben zu stecken wird die Statusleiste auf iOS 9 und 10 nicht ausschließen.

%Vor%     
aleh 12.10.2017 13:41
quelle