Tôi không hiểu tại sao mọi người phàn nàn rằng " Lợi nhuận sẽ gây ra sự cố hoàn toàn cho bất cứ điều gì trước iOS 8. "
Đặt các ràng buộc của bạn liên quan đến lề trong tệp xib hoặc bảng phân cảnh KHÔNG làm cho ứng dụng của bạn bị sập trên iOS7 và nó cũng không tạo ra sự khác biệt về giao diện người dùng trên thiết bị iOS7 của bạn, miễn là bạn không chạm vào UIView.layoutMargins
và UIView.preservesSuperviewLayoutMargins
các thuộc tính trong mã của mình.
Lợi nhuận trong iOS8 là gì
Các lề bố cục thể hiện phần đệm xung quanh phần bên trong của UIView
hệ thống bố cục có thể sử dụng khi bố trí các mục phỏng vấn - để đảm bảo rằng một khoảng trống được để lại giữa cạnh của một khung nhìn và một khung nhìn phụ. Về mặt này, nó rất giống với thuộc tính đệm được liên kết với các khối trong CSS.
Theo mặc định, một UIView
lề có bố cục 8 điểm ở mỗi bên và điều này không thể thay đổi trong Trình tạo giao diện . Tuy nhiên, bằng cách đặt thuộc UIView.layoutMargins
tính trong mã chỉ có trên iOS8, bạn có thể điều chỉnh các giá trị này.
Bạn có thể nhận IB để hiển thị lề bằng Trình chỉnh sửa> Canvas> Hiển thị hình chữ nhật bố cục:
Lợi nhuận có thể được sử dụng để giúp bố trí quan điểm và các cuộc phỏng vấn của bạn. MỗiUIView
có lề theo mặc định, nhưng chúng chỉ ảnh hưởng đến vị trí xem khi bạn thiết lập một ràng buộc có liên quan đến lề.
Cách sử dụng Lợi nhuận
Cách duy nhất để sử dụng lề trong Trình tạo giao diện là kiểm tra tùy chọn Relative to lề trong khi định cấu hình các ràng buộc của bạn. Đây là cách bạn hướng ràng buộc của mình vào Sử dụng lề thay vì các cạnh khi bố trí chế độ xem của tôi.
Chúng ta hãy xem bốn cách khác nhau để thiết lập một ràng buộc hàng đầu giữa một khung nhìn và khung nhìn của nó. Đối với mỗi ràng buộc, chúng tôi xem xét hiệp hội đầu tiên được mô tả sẽ là đầu mối của nhóm phụ và thứ hai sẽ là hàng đầu của giám sát . Điều bạn muốn chú ý là trạng thái kiểm tra và bỏ chọn của tùy chọn Relative to lề của mỗi đầu ràng buộc, bởi vì điều đó xác định xem ràng buộc đó có được gắn với lề hoặc cạnh của khung nhìn hay không.
- Mục đầu tiên (bỏ chọn), mục thứ hai (kiểm tra): Trong trường hợp này, chúng tôi đang tuyên bố cạnh trái của khung nhìn phụ sẽ căn chỉnh với lề trái của giám sát (như trong hình này).
- Mục đầu tiên (bỏ chọn), mục thứ hai (bỏ chọn): Cả hai đều sử dụng cạnh, không phải lề . Trong trường hợp này, chúng tôi tuyên bố rằng cạnh trái của khung nhìn phụ sẽ thẳng hàng với cạnh trái của giám sát.
- Mục đầu tiên (kiểm tra), mục thứ hai (bỏ chọn): Trong trường hợp này, chúng tôi đang tuyên bố rằng lề trái của khung nhìn phụ sẽ phù hợp với cạnh trái của giám sát. Kiểu bố trí này thực sự làm cho các khung nhìn phụ chồng lên giám sát.
- Mục đầu tiên (kiểm tra), mục thứ hai (kiểm tra). Điều này thực sự có tác dụng tương tự như trường hợp 2, vì cả subview và giám sát đều có cùng một lề mặc định. Chúng tôi đang tuyên bố rằng lề trái của subview sẽ phù hợp với lề trái của giám sát.
Điều gì là tốt về lợi nhuận
Tính năng mới này (iOS8) chỉ tác động đến việc phát triển UI nếu bạn quyết định sử dụng lề.
Bằng cách sử dụng lề, bạn có thể điều chỉnh vị trí của nhiều cuộc phỏng vấn có chung mối quan hệ với giám sát được chia sẻ bằng cách thay đổi giá trị của một thuộc tính. Đây là một chiến thắng rõ ràng khi đặt tất cả các ràng buộc liên quan với các giá trị cố định, bởi vì nếu bạn cần cập nhật tất cả các khoảng cách, thay vì thay đổi từng giá trị một, bạn có thể sửa đổi đồng thời tất cả các vị trí có liên quan bằng cách cập nhật lề của giám sát bằng một dòng duy nhất mã như thế này:
self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);
Để minh họa lợi ích này, trong trường hợp sau đây, tất cả các cạnh trái của các cuộc phỏng vấn được căn chỉnh theo lề trái của giám sát của họ. Do đó, việc thay đổi lề trái của giám sát sẽ ảnh hưởng đến tất cả các cuộc phỏng vấn cùng một lúc.