2013-09-23 82 views
19

Tôi đã tạo Bộ điều khiển chế độ xem mới, sau đó thêm Chế độ xem cuộn làm con của Chế độ xem gốc và đặt "Hàng đầu/Đầu/Trailing/Dưới không gian để giám sát" thành 0 sao cho xem cuộn sẽ điền vào hoàn toàn phụ huynh của nó.Ràng buộc không gian phía sau sai cho trẻ em của UIScrollView

Sau đó, tôi đã thêm một nút làm con của chế độ xem cuộn, với các giới hạn về không gian từ 15 đến "Superview" (tức là chế độ xem cuộn). Do đó, tôi mong đợi nút có khoảng cách từ 15 đến đầu/trái/phải và nội dung của chế độ xem cuộn để kết thúc ở cuối nút + 15 '. Tuy nhiên độ rộng của nút là không chính xác (kiểm tra trong Xcode 5 Interface Builder, iOS 6/7 mô phỏng):

Example

Nó thậm chí không hoạt động nếu tôi hạn chế nút với "Equal Width SuperView "! Vẫn không chiếm toàn bộ chiều rộng.

Làm cách nào để giải quyết vấn đề này?

+0

Xem câu trả lời ở đây: http://stackoverflow.com/questions/16843633/ios-autolayout-with-uiscrollview-why-does-content-view-of-scroll-view-not-fill – asdfasdfads

Trả lời

48

Tìm thấy giải pháp tốt :) Lý do cho hành vi này là chế độ xem cuộn điều chỉnh kích thước chế độ xem nội dung cho những gì thực sự cần thiết cho các bản xem phụ và không tự động điền chiều rộng/chiều cao. Nếu chiều rộng phải được lấp đầy, chế độ xem cuộn do đó phải chứa ít nhất một chế độ xem làm đầy chiều rộng của màn hình.

Với các bước này, tôi đã thêm chế độ xem có chiều rộng bằng với chế độ xem cuộn (chính chế độ xem cuộn, không phải vùng xem nội dung), dẫn đến chế độ xem cuộn của tôi cuối cùng mở rộng đến toàn bộ chiều rộng vì tôi cũng đã thêm các ràng buộc "không gian để giám sát 0/0/0/0" cho chế độ xem cuộn.

  • Giả sử một bộ điều khiển xem sản phẩm nào với quan điểm một gốc
  • xem Add cuộn, thiết lập chế "không gian để SuperView trên/trái/phải/dưới = 0/0/0/0" vào nó
  • Add UI của bạn để xem di chuyển tuy nhiên bạn muốn và đặt những hạn chế cũng làm thế nào bạn muốn
  • Thêm một Xem mới, đổi tên nó thành cái gì đó như "Đảm bảo xem cuộn lấp đầy chiều rộng", với những hạn chế sau
    • hàng đầu/đuôi/đầu không gian để giám sát (đó là chế độ xem cuộn!) = 0
    • Chiều cao 0 vì chúng tôi muốn nó ẩn đi vì chế độ xem chỉ là người trợ giúp
    • Phần quan trọng: Chọn chế độ xem này và chế độ xem cuộn trong cấu trúc phân cấp và hạn chế chiều rộng bằng nhau. Vì chế độ xem cuộn bị hạn chế với trình giám sát của nó, nó sẽ nhận được chiều rộng. Sau đó, ràng buộc này đảm bảo rằng chế độ xem nội dung của chế độ xem cuộn cũng ít nhất (rộng).
+8

Chiều rộng bằng nhau! Thật thanh lịch! –

+0

Để rõ ràng, "Thêm Chế độ xem mới" cần phải là con của chế độ xem cuộn – theblindprophet