Unterschied zwischen leftAnchor und LeadingAnchor?

119

Ich habe in Swift für iOS mit Einschränkungen gearbeitet, und die meisten Namenskonventionen / Dokumentationen machen die Dinge ziemlich selbsterklärend, aber eine Sache, die mich kürzlich verwirrt hat, sind zwei Paare der NSLayoutXAxisAnchor-Klasse:

leadingAnchor, leftAnchor

zusammen mit

trailingAnchor, rightAnchor

Wenn ich in meiner iOS-App programmgesteuert Einschränkungen festgelegt habe, habe ich festgestellt, dass ich diese vollständig austauschbar verwenden kann. Wenn ich LeadingAnchor verwende, die App ausführe und das Verhalten beobachte und dann leftAnchor verwende, die App ausführe und das Verhalten beobachte, funktioniert es genauso.

Ich habe die Dokumentation von developer.apple.com überprüft und die Ergebnisse sind sogar genau gleich (ohne Berücksichtigung der Namensunterschiede). Zum Beispiel den Vergleich von LeadingAnchor und LeftAnchor:

"Verwenden Sie diesen Anker, um Einschränkungen mit der Vorderkante der Ansicht zu erstellen. Sie können diesen Anker nur mit einer Teilmenge der NSLayoutXAxisAnchor-Anker kombinieren. Sie können einen LeadingAnchor mit einem anderen LeadingAnchor, einem TrailingAnchor oder einem CenterXAnchor kombinieren. Weitere Informationen finden Sie unter NSLayoutAnchor-Klasse Referenz."

vergleichen mit:

"Verwenden Sie diesen Anker, um Einschränkungen mit dem linken Rand der Ansicht zu erstellen. Sie können diesen Anker nur mit einer Teilmenge der NSLayoutXAxisAnchor-Anker kombinieren. Sie können einen leftAnchor mit einem anderen leftAnchor, einem rightAnchor oder einem centerXAnchor kombinieren. Weitere Informationen finden Sie unter NSLayoutAnchor-Klasse Referenz."

Weiß jemand, ob es einen beabsichtigten Unterschied zwischen diesen Eigenschaften gibt?

Michael Fourre
quelle

Antworten:

270

Dies wurde (kurz) in einem der WWDC 2015-Videos zu den Mysteries of Autolayout behandelt (ich denke, es war Teil 1, aber beide sind sehenswert).

Die Einschränkungen für Links und Rechts sind absolut. Sie beziehen sich immer auf die linke / rechte Seite des Bildschirms oder des Steuerelements. Führende und nachfolgende Einschränkungen werden vom Gebietsschema des Geräts beeinflusst. In Regionen, in denen die Leserichtung von links nach rechts ist (Englisch, Französisch, Spanisch usw.), können führende und linke (und nachfolgende und rechte) austauschbar verwendet werden. In Gebieten, in denen die Leserichtung von rechts nach links ist (z. B. Hebräisch, Arabisch), ist "Führen" die rechte Seite und "Nachlaufen" die linke Seite.

Der Rat im Video war, dass Sie fast immer führend / nachlaufend und nicht links / rechts verwenden sollten, es sei denn, Sie haben eine spezielle Anforderung für absolutes links / rechts.

Betrachten Sie die typische Form eines Etiketts und eines Textfelds. Wenn Sie führende / nachfolgende Einschränkungen verwenden, erhalten Sie die Beschriftung links und das Textfeld rechts für ein englisches Gebietsschema und die Beschriftung rechts und das Textfeld links für ein hebräisches Gebietsschema.

Wenn Sie eine Kinder-App erstellt haben, in der Sie von links nach rechts unterrichtet haben und immer die Schaltfläche "Links" auf der linken Seite des Bildschirms haben möchten, sind Einschränkungen für links / rechts angemessen

Paulw11
quelle
9
Hervorragende Informationen, danke für die Antwort. Ich wünschte, ich hätte das Video gesehen, dann hätte ich das selbst gewusst! Ich werde dies als akzeptierte Antwort markieren.
Nochmals vielen