Ràng buộc “Chiều rộng bằng chiều cao” trong Trình tạo giao diện


92

Tôi không thể tìm thấy cách tạo ràng buộc 'hình vuông', có nghĩa là 'chiều rộng bằng chiều cao' trong Trình tạo giao diện. Tôi đoán có thể thêm ràng buộc như vậy theo chương trình. Tôi có thể làm gì trong IB? Có lẽ tôi không nhìn thấy nó? Nó có vẻ tầm thường, nhưng tôi không thể tìm thấy nó.


Tôi nhớ Peter Ammon đã nói về "Dựa vào Trình tạo giao diện càng nhiều càng tốt" trong WWDC'12. Thật trớ trêu.
DemoniacDeath

4
Vâng, tôi nghĩ rằng vẫn còn thiếu một vài thứ khi thực hiện các ràng buộc về bố cục. Có vẻ như họ đã cấp cho chúng tôi quyền truy cập vào hầu hết các tham số, nhưng không cho phép hệ số nhân, điều này sẽ hữu ích cho rất nhiều thứ.
rdelmar

Nhưng nó ngày càng tốt hơn! Ý tôi là Auto Layout đã được giới thiệu cách đây chưa đầy 3 năm và theo quan điểm của tôi thì hiện nay sự hỗ trợ thực sự tốt.
Lukas Kubanek

Câu trả lời:


187

Cập nhật Xcode 5.1b5

chiều rộng bằng chiều cao

Ctrl + nhấp và kéo từ một dạng xem và thả ra khi con trỏ ở trên dạng xem. Chọn "Tỷ lệ khung hình". Nó sẽ tạo ra một ràng buộc trong đó mục đầu tiên và mục thứ hai là chế độ xem.


Trước Xcode 5.1

Bạn không thể vì trình chỉnh sửa chiều rộng / chiều cao thiếu các trường để liên quan đến thuộc tính khác hoặc đặt tỷ lệ:

hạn chế chiều rộng

Do đó, bạn không thể diễn đạt mã sau trong Trình tạo giao diện:

CGFloat ratio = 1.0;
NSLayoutConstraint *constraint = [NSLayoutConstraint
    constraintWithItem:myView
    attribute:NSLayoutAttributeWidth
    relatedBy:NSLayoutRelationEqual
    toItem:myView
    attribute:NSLayoutAttributeHeight
    multiplier:ratio
    constant:0];
constraint.priority = 1000;
[myView.superview addConstraint:constraint];

1
Cảm ơn cho bản cập nhật mới nhất. Xcode 5.1 beta 5 thực sự cho phép bạn đặt các ràng buộc tỷ lệ khung hình trong IB, nhưng khi tôi cố gắng biên dịch dự án, tôi gặp lỗi sau: Ràng buộc tỷ lệ khung hình với các phiên bản Xcode trước 5.1 . Vì vậy, có lẽ chúng ta phải đợi phiên bản 5.1 cuối cùng. Bạn cũng vậy, @Jano?
Lukas Kubanek

Có, những thay đổi đối với XIB không tương thích ngược. Nếu bạn chỉnh sửa bằng 5.1, bạn không thể quay lại các phiên bản thấp hơn.
Jano

Vì vậy, bạn có thể biên dịch xib? Nó không hoạt động ngay cả với Xcode 5.1 beta 5 đối với tôi.
Lukas Kubanek

1
@ onmyway133 tạo ràng buộc giữa hai chế độ xem và đặt hệ số thành 1: 2.
Jano

3
Trong Xcode 7, ctrl + click kéo từ cái nhìn và phát hành trên đầu trang của chính nó, và chọn Aspect ratio
inorganik

1

Vui lòng thêm một ràng buộc mới, tỷ lệ co thành 1: 1 trên phần tử giao diện người dùng như trong hình ảnh.

Đặt tỷ lệ co thành 1: 1


0

Để bắt đầu, điều khiển kéo theo đường chéo từ nút đến chính nó. Một menu ngữ cảnh sẽ xuất hiện, nơi bạn có thể thêm các ràng buộc về chiều rộng và chiều cao. Shift + Nhấp vào từng; một dấu kiểm sẽ xuất hiện cho biết rằng bạn đã thêm ràng buộc. (Nếu bạn vô tình loại bỏ hộp thoại trước khi thêm cả hai, điều đó không sao, chỉ cần lặp lại bước kéo và đặt hộp thoại khác):

nhập mô tả hình ảnh ở đây

Khi được thêm lần đầu, các ràng buộc này sẽ tính theo chiều rộng và chiều cao hiện tại của nút, vì vậy bạn sẽ cần điều chỉnh từng ràng buộc để cung cấp cho nó một giá trị phù hợp hơn. Chúng ta sẽ phải làm điều này một lúc, mặc dù hình ảnh của chúng ta là hình vuông, vì vậy hãy đảm bảo sử dụng cùng một giá trị không đổi trong cả hai ràng buộc để thay đổi kích thước nút một cách tương ứng. Bấm đúp vào ràng buộc và nhập một giá trị nhỏ hơn vào trường hằng số của nó:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.