Bạn không mô tả quy mô cho phù hợp; bạn đang mô tả phù hợp với khía cạnh. (Tôi đã chỉnh sửa câu hỏi của bạn về vấn đề này.) Cuộc phỏng vấn trở nên lớn nhất có thể trong khi duy trì tỷ lệ khung hình của nó và phù hợp hoàn toàn bên trong cha mẹ của nó.
Dù sao, bạn có thể làm điều này với bố trí tự động. Bạn có thể làm điều đó hoàn toàn bằng IB kể từ Xcode 5.1. Hãy bắt đầu với một số quan điểm:
Chế độ xem màu xanh nhạt có tỷ lệ khung hình là 4: 1. Chế độ xem màu xanh đậm có tỷ lệ khung hình là 1: 4. Tôi sẽ thiết lập các ràng buộc để chế độ xem màu xanh lấp đầy nửa trên của màn hình, chế độ xem màu hồng lấp đầy nửa dưới của màn hình và mỗi chế độ xem màu xanh lá cây mở rộng hết mức có thể trong khi duy trì tỷ lệ khung hình và khớp với nó thùng đựng hàng.
Đầu tiên, tôi sẽ tạo các ràng buộc ở cả bốn phía của chế độ xem màu xanh. Tôi sẽ ghim nó vào hàng xóm gần nhất của nó ở mỗi cạnh, với khoảng cách bằng 0. Tôi đảm bảo tắt lề:
Lưu ý rằng tôi không cập nhật khung hình. Tôi thấy dễ dàng rời khỏi phòng giữa các chế độ xem khi thiết lập các ràng buộc và chỉ cần đặt các hằng số thành 0 (hoặc bất cứ thứ gì) bằng tay.
Tiếp theo, tôi ghim các cạnh trái, dưới và phải của chế độ xem màu hồng cho hàng xóm gần nhất của nó. Tôi không cần thiết lập ràng buộc cạnh trên vì cạnh trên của nó đã bị giới hạn ở cạnh dưới của chế độ xem màu xanh.
Tôi cũng cần một ràng buộc về độ cao bằng nhau giữa các khung nhìn màu hồng và màu xanh. Điều này sẽ làm cho mỗi cái lấp đầy một nửa màn hình:
Nếu tôi bảo Xcode cập nhật tất cả các khung bây giờ, tôi sẽ nhận được điều này:
Vì vậy, các ràng buộc tôi đã thiết lập cho đến nay là chính xác. Tôi hoàn tác điều đó và bắt đầu làm việc trên chế độ xem màu xanh nhạt.
Khung nhìn phù hợp với chế độ xem màu xanh nhạt yêu cầu năm ràng buộc:
- Một ràng buộc tỷ lệ khung hình ưu tiên bắt buộc trên chế độ xem màu xanh nhạt. Bạn có thể tạo ràng buộc này trong xib hoặc bảng phân cảnh bằng Xcode 5.1 trở lên.
- Ràng buộc ưu tiên bắt buộc giới hạn chiều rộng của chế độ xem màu lục nhạt nhỏ hơn hoặc bằng chiều rộng của vùng chứa.
- Ràng buộc ưu tiên cao đặt chiều rộng của chế độ xem màu lục nhạt bằng với chiều rộng của vùng chứa.
- Ràng buộc ưu tiên bắt buộc giới hạn chiều cao của chế độ xem màu lục nhạt nhỏ hơn hoặc bằng chiều cao của vùng chứa.
- Ràng buộc ưu tiên cao đặt chiều cao của chế độ xem màu lục nhạt bằng với chiều cao của vùng chứa.
Hãy xem xét hai hạn chế chiều rộng. Các ràng buộc nhỏ hơn hoặc bằng nhau, tự nó, không đủ để xác định chiều rộng của chế độ xem màu xanh nhạt; nhiều chiều rộng sẽ phù hợp với các ràng buộc. Vì có sự không rõ ràng, tự động thanh toán sẽ cố gắng chọn một giải pháp giảm thiểu lỗi trong các ràng buộc khác (ưu tiên cao nhưng không bắt buộc). Giảm thiểu lỗi có nghĩa là làm cho chiều rộng càng gần càng tốt với chiều rộng của bộ chứa, trong khi không vi phạm các ràng buộc nhỏ hơn hoặc bằng nhau.
Điều tương tự xảy ra với các hạn chế chiều cao. Và vì cũng cần phải có ràng buộc tỷ lệ khung hình, nên nó chỉ có thể tối đa hóa kích thước của khung nhìn phụ dọc theo một trục (trừ khi vùng chứa xảy ra có cùng tỷ lệ khung hình với khung nhìn phụ).
Vì vậy, trước tiên tôi tạo ràng buộc tỷ lệ khung hình:
Sau đó, tôi tạo các ràng buộc chiều rộng và chiều cao bằng nhau với container:
Tôi cần chỉnh sửa các ràng buộc này thành các ràng buộc nhỏ hơn hoặc bằng:
Tiếp theo tôi cần tạo một tập các ràng buộc chiều rộng và chiều cao bằng nhau với vùng chứa:
Và tôi cần làm cho những ràng buộc mới này ít hơn mức ưu tiên cần thiết:
Cuối cùng, bạn đã yêu cầu xem các khung nhìn phụ được đặt ở giữa trong thùng chứa của nó, vì vậy tôi sẽ thiết lập các ràng buộc đó:
Bây giờ, để kiểm tra, tôi sẽ chọn bộ điều khiển xem và yêu cầu Xcode cập nhật tất cả các khung. Đây là những gì tôi nhận được:
Giáo sư! Subview đã mở rộng để lấp đầy hoàn toàn container của nó. Nếu tôi chọn nó, tôi có thể thấy rằng trong thực tế nó duy trì tỉ lệ của nó, nhưng nó đang làm một aspect- điền thay vì một aspect- phù hợp .
Vấn đề là ở một ràng buộc nhỏ hơn hoặc bằng nhau, vấn đề là chế độ xem ở mỗi đầu của ràng buộc và Xcode đã thiết lập ràng buộc ngược với mong đợi của tôi. Tôi có thể chọn một trong hai ràng buộc và đảo ngược các mục đầu tiên và thứ hai của nó. Thay vào đó, tôi sẽ chỉ chọn chế độ xem phụ và thay đổi các ràng buộc thành lớn hơn hoặc bằng:
Xcode cập nhật bố cục:
Bây giờ tôi làm tất cả những điều tương tự với chế độ xem màu xanh đậm ở phía dưới. Tôi cần đảm bảo tỷ lệ khung hình của nó là 1: 4 (Xcode đã thay đổi kích thước theo cách kỳ lạ vì nó không có ràng buộc). Tôi sẽ không hiển thị các bước một lần nữa vì chúng giống nhau. Đây là kết quả:
Bây giờ tôi có thể chạy nó trong trình giả lập iPhone 4S, có kích thước màn hình khác với IB được sử dụng và xoay thử nghiệm:
Và tôi có thể thử nghiệm trong trình giả lập iPhone 6:
Tôi đã tải lên bảng phân cảnh cuối cùng của mình lên ý chính này để thuận tiện cho bạn.