ความแตกต่างระหว่าง leftAnchor และ LeadingAnchor?


121

ฉันทำงานกับข้อ จำกัด ใน Swift สำหรับ iOS และหลักการตั้งชื่อ / เอกสารส่วนใหญ่ทำให้สิ่งต่างๆอธิบายได้ค่อนข้างชัดเจน แต่สิ่งหนึ่งที่ทำให้ฉันสับสนเมื่อเร็ว ๆ นี้คือคลาส NSLayoutXAxisAnchor สองคู่:

leadingAnchor, leftAnchor

พร้อมด้วย

trailingAnchor, rightAnchor

เมื่อฉันตั้งข้อ จำกัด ทางโปรแกรมในแอป iOS ของฉันฉันพบว่าฉันสามารถใช้สิ่งเหล่านี้แทนกันได้ทั้งหมด ถ้าฉันใช้ LeadingAnchor ให้เรียกใช้แอปและสังเกตพฤติกรรมจากนั้นใช้ leftAnchor เรียกใช้แอปและสังเกตพฤติกรรมมันทำงานเหมือนกันทุกประการ

ฉันตรวจสอบเอกสารจาก developer.apple.com และผลลัพธ์ก็เหมือนกันทุกประการ (โดยไม่สนใจความแตกต่างของชื่อ) ตัวอย่างเช่นการเปรียบเทียบ LeadingAnchor และ leftAnchor:

"ใช้จุดยึดนี้เพื่อสร้างข้อ จำกัด กับขอบนำหน้าของมุมมองคุณสามารถรวมจุดยึดนี้กับชุดย่อยของจุดยึด NSLayoutXAxisAnchor เท่านั้นคุณสามารถรวม LeadingAnchor กับแองเคอร์อื่นที่เป็นผู้นำ, แอนเคอร์ต่อท้ายหรือ centerXAnchor สำหรับข้อมูลเพิ่มเติมโปรดดูคลาส NSLayoutAnchor อ้างอิง."

เปรียบเทียบกับ:

"ใช้จุดยึดนี้เพื่อสร้างข้อ จำกัด กับขอบด้านซ้ายของมุมมองคุณสามารถรวมจุดยึดนี้กับชุดย่อยของจุดยึด NSLayoutXAxisAnchor เท่านั้นคุณสามารถรวม leftAnchor กับ leftAnchor อื่น, rightAnchor หรือ centerXAnchor สำหรับข้อมูลเพิ่มเติมโปรดดูคลาส NSLayoutAnchor อ้างอิง."

ไม่มีใครรู้ว่าคุณสมบัติเหล่านี้มีความแตกต่างกันหรือไม่?

คำตอบ:


274

สิ่งนี้ครอบคลุม (สั้น ๆ ) ในหนึ่งในวิดีโอ WWDC 2015 เรื่องMysteries of Autolayout (ฉันคิดว่ามันเป็นตอนที่ 1 แต่ทั้งคู่ก็น่าดู)

ข้อ จำกัด ด้านซ้ายและขวาเป็นข้อ จำกัด ที่แน่นอนโดยจะอ้างถึงด้านซ้าย / ขวาของหน้าจอหรือส่วนควบคุมเสมอ ข้อ จำกัด นำหน้าและต่อท้ายได้รับผลกระทบจากตำแหน่งอุปกรณ์ ในภาษาที่ทิศทางการอ่านจากซ้ายไปขวา (อังกฤษฝรั่งเศสสเปนและอื่น ๆ ) นำหน้า & ซ้าย (และต่อท้าย & ขวา) สามารถใช้สลับกันได้ ในภาษาที่ทิศทางการอ่านจากขวาไปซ้าย (เช่นภาษาฮิบรูภาษาอาหรับ) "นำหน้า" จะเป็นด้านขวาและ "ต่อท้าย" จะเป็นด้านซ้าย

คำแนะนำในวิดีโอคือคุณควรใช้ส่วนนำหน้า / ต่อท้ายมากกว่าซ้าย / ขวาเว้นแต่คุณจะมีข้อกำหนดเฉพาะสำหรับซ้าย / ขวาสัมบูรณ์

พิจารณา 'รูปแบบ' ทั่วไปของป้ายกำกับและฟิลด์ข้อความ หากคุณใช้ข้อ จำกัด นำหน้า / ต่อท้ายคุณจะได้รับป้ายกำกับทางด้านซ้ายและช่องข้อความทางด้านขวาสำหรับภาษาอังกฤษและป้ายกำกับทางด้านขวาช่องข้อความทางด้านซ้ายสำหรับภาษาฮิบรู

ถ้าคุณทำ app สำหรับเด็กที่คุณได้รับการเรียนการสอนที่เหลือจากการถูกต้องและคุณมักจะต้องการที่ปุ่ม 'ซ้าย' บนซ้ายของหน้าจอแล้วซ้าย / ข้อ จำกัด ทางด้านขวาจะเป็นที่เหมาะสม


9
ข้อมูลที่ยอดเยี่ยมขอบคุณสำหรับการตอบกลับ ฉันหวังว่าฉันจะดูวิดีโอแล้วฉันจะได้รู้เรื่องนี้ด้วยตัวเอง! ฉันจะทำเครื่องหมายว่านี่เป็นคำตอบที่ยอมรับ ขอบคุณอีกครั้ง
Michael Fourre
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.