2015-10-06 14 views
44

tôi đã làm việc với các ràng buộc trong Swift dành cho iOS, và hầu hết các quy ước đặt tên/tài liệu làm cho mọi việc tự giải thích khá lâu, nhưng có một điều mà gần đây đã nhầm lẫn tôi là hai cặp của lớp NSLayoutXAxisAnchor:Sự khác biệt giữa leftAnchor và hàng đầuAnchor?

leadingAnchor, leftAnchor 

cùng với

trailingAnchor, rightAnchor 

Khi tôi đã đặt ràng buộc theo chương trình trong ứng dụng iOS, tôi thấy rằng tôi có thể sử dụng những thay đổi này hoàn toàn thay thế. Nếu tôi sử dụng hàng đầuAnchor, chạy ứng dụng và quan sát hành vi, sau đó sử dụng leftAnchor, chạy ứng dụng và quan sát hành vi, nó hoạt động chính xác như cũ.

Tôi đã xem tài liệu từ developer.apple.com và kết quả thậm chí giống hệt nhau (bỏ qua sự khác biệt về tên). Ví dụ so sánh leadingAnchor và leftAnchor:

"Sử dụng neo này để tạo ra những hạn chế có lợi thế cạnh hàng đầu thế xem Bạn chỉ có thể kết hợp neo này với một tập hợp con của NSLayoutXAxisAnchor neo Bạn có thể kết hợp một leadingAnchor với .. một hàng đầu khácAnchor, một trailingAnchor, hoặc một centerXAnchor. Để biết thêm thông tin , hãy xem NSLayoutAnchor Class Reference. "

so sánh với:

"Sử dụng neo này để tạo ra trở ngại với của view cạnh trái Bạn chỉ có thể kết hợp neo này với một tập hợp con của neo NSLayoutXAxisAnchor Bạn có thể kết hợp một leftAnchor với.. một leftAnchor, một rightAnchor, hoặc một centerXAnchor. Để biết thêm thông tin, xem NSLayoutAnchor Class Reference. "

Có ai biết nếu có bất kỳ sự khác biệt dự định nào giữa các thuộc tính này không?

Trả lời

102

Điều này đã được đề cập (một thời gian ngắn) trong một trong các video của WWDC 2015 trên Bí ẩn của Autolayout (Tôi nghĩ rằng đó là phần 1 nhưng cả hai đều đáng xem).

Ràng buộc trái và phải tuyệt đối, chúng sẽ luôn luôn tham chiếu bên trái/phải của màn hình hoặc điều khiển. Các ràng buộc hàng đầu và trailing bị ảnh hưởng bởi miền địa phương của thiết bị; Ở các ngôn ngữ mà hướng đọc là từ trái sang phải (tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha vv ..), bạn có thể sử dụng thay thế cho nhau & bên trái (và theo sau & bên phải). Ở các ngôn ngữ mà hướng đọc phải từ phải sang trái (ví dụ: tiếng Do Thái) thì 'hàng đầu' sẽ là bên phải và 'dấu' sẽ là phía bên trái.

Lời khuyên trong video là bạn hầu như luôn luôn sử dụng hàng đầu/theo dõi thay vì trái/phải trừ khi bạn có yêu cầu cụ thể cho tuyệt đối trái/phải.

Hãy xem xét 'biểu mẫu' điển hình của nhãn và trường văn bản. Nếu bạn sử dụng các ràng buộc hàng đầu/cuối thì bạn sẽ nhận được nhãn ở bên trái và trường văn bản ở bên phải cho một ngôn ngữ và nhãn tiếng Anh ở bên phải, trường văn bản ở bên trái cho một ngôn ngữ Do Thái.

Nếu bạn đã thực hiện ứng dụng dành cho trẻ em, nơi bạn được giảng dạy trái từ bên phải và bạn luôn muốn nút 'left' ở bên trái của màn hình sau đó trái/hạn chế đúng sẽ là thích hợp

+3

thông tin tuyệt vời, cảm ơn bạn để hồi âm. Tôi ước mình đã xem video, sau đó tôi đã tự mình biết điều này! Tôi sẽ đánh dấu đây là câu trả lời được chấp nhận. Cảm ơn một lần nữa –

Các vấn đề liên quan