LeftAnchor ve lider çapa arasındaki fark?


120

İOS için Swift'de kısıtlamalarla çalışıyorum ve adlandırma kurallarının / belgelerin çoğu işleri oldukça açıklayıcı hale getiriyor, ancak son zamanlarda kafamı karıştıran şey NSLayoutXAxisAnchor sınıfının iki çifti:

leadingAnchor, leftAnchor

ile birlikte

trailingAnchor, rightAnchor

İOS uygulamamda programlı olarak kısıtlamalar belirlediğimde, bunları tamamen birbirinin yerine kullanabileceğimi fark ettim. LeadingAnchor kullanırsam, uygulamayı çalıştırıp davranışı gözlemler ve ardından leftAnchor kullanır, uygulamayı çalıştırır ve davranışı gözlemlersem, tamamen aynı şekilde çalışır.

Developer.apple.com'daki dokümantasyona baktım ve sonuçlar tamamen aynı (adlardaki farkı göz ardı ederek). Örneğin, ana çapa ve sol bağlantı'yı karşılaştırmak için:

"Görünümün ön kenarı ile kısıtlamalar oluşturmak için bu çapayı kullanın. Bu ankrajı yalnızca NSLayoutXAxisAnchor tutturucularının bir alt kümesiyle birleştirebilirsiniz. Öncü Çapayı başka bir öncü Çapa, sondaki Çapa veya bir centerXAnchor ile birleştirebilirsiniz. Daha fazla bilgi için bkz. NSLayoutAnchor Sınıfı Referans."

karşılaştırmak:

"Görünümün sol kenarıyla kısıtlamalar oluşturmak için bu çapayı kullanın. Bu bağlayıcıyı yalnızca NSLayoutXAxisAnchor bağlantılarının bir alt kümesiyle birleştirebilirsiniz. Bir sol Bağlantıyı başka bir sol Bağlantı, bir sağ Bağlantı veya bir centerXAnchor ile birleştirebilirsiniz. Daha fazla bilgi için bkz. NSLayoutAnchor Sınıfı Referans."

Bu özellikler arasında amaçlanan bir fark olup olmadığını bilen var mı?

Yanıtlar:


273

Bu, Autolayout'un Gizemleri ile ilgili WWDC 2015 videolarından birinde (kısaca) ele alındı (sanırım 1. bölümdü ama her ikisi de izlemeye değer).

Sol ve Sağ kısıtlamalar mutlaktır, her zaman ekranın veya kontrolün soluna / sağına başvururlar. Baştaki ve sondaki kısıtlamalar, aygıt yerel ayarından etkilenir; Okuma yönünün soldan sağa (İngilizce, Fransızca, İspanyolca vb.) Önde ve solda (ve sonda ve sağda) olduğu yerlerde birbirinin yerine kullanılabilir. Okuma yönünün sağdan sola olduğu yerlerde (örneğin, İbranice, Arapça) o zaman 'önde' sağ taraf ve 'arka' sol taraf olacaktır.

Videodaki tavsiye, mutlak sol / sağ için belirli bir gereksiniminiz olmadıkça, sol / sağ yerine neredeyse her zaman önde / arkada kullanmanız gerektiğiydi.

Bir etiketin ve bir metin alanının tipik 'biçimini' düşünün. Baştaki / sondaki kısıtlamaları kullanırsanız, o zaman İngilizce bir yerel ayar için solda etiket ve sağda metin alanı ve sağda etiket, İbranice yerel ayar için solda metin alanı alırsınız.

Soldan sağdan öğretim yaptığınız bir çocuk uygulaması yaptıysanız ve her zaman ekranın solundaki 'sol' düğmeyi istediyseniz, sol / sağ kısıtlamalar uygun olacaktır.


9
Mükemmel bilgi, cevabınız için teşekkür ederim. Keşke videoyu izlemiş olsaydım, o zaman bunu kendim bilirdim! Bunu kabul edilen cevap olarak işaretleyeceğim. Tekrar teşekkürler
Michael Fourre
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.