2016-04-02 22 views
6

Tôi có một ứng dụng sử dụng Trình điều khiển Nav làm VC ban đầu, sau đó có UIViewContoller gốc chứa UIView ở nửa trên cùng và UIContainerView ở phía dưới. Trong UIContanerView, tôi đang nhúng một UICollectionView đang hoạt động có chứa các nút hình ảnh phân biệt các khung nhìn chi tiết.Nhúng bộ sưu tập Xem bên trong Chế độ xem vùng chứa - không gian trắng bổ sung ở trên cùng

Vấn đề là không gian màu trắng hiện hiển thị ở đầu UICollectionView. Do đây là cao khoảng 64 pixel, nó dường như là một bóng mờ của một Nav Bar 44px + Status Bar 20px = 64.

Extra space of around 64px in my UICollectionView (I set it gray)

Và nếu tôi di chuyển lên tất cả mọi thứ có vẻ tốt đẹp và làm việc như mong đợi, và nó cũng cho phép tôi chỉ cho bạn những gì tôi mong đợi bố trí để trông giống như khi khởi động:

What I expected the launch layout to look like

Một đoạn kịch bản của tôi là dưới đây nếu giúp:

Storyboard

+0

Đã lâu rồi kể từ khi tôi gặp sự cố này và tôi không nhớ chính xác độ phân giải :-(. IIRC Vấn đề là chế độ xem vùng chứa nằm trong chế độ xem điều hướng và hệ điều hành đang cố gắng rất hữu ích bằng cách di chuyển nội dung xuống theo chiều cao của chế độ xem điều hướng. Nếu tôi nhớ chính xác một điều bạn có thể kiểm tra là "layoutMargins" của chế độ xem vùng chứa. Tôi nghĩ rằng bạn sẽ tìm thấy bộ lợi nhuận hàng đầu và bạn có thể cố gắng để làm rõ điều đó. –

+0

kiểm tra điều này ... http://stackoverflow.com/questions/23786198/uicollectionview-how-can-i-remove-the-space-on-top-first-cells-row –

+0

Cảm ơn, hãy để tôi vào một dòng answer: 'automaticAdjustsScrollViewInsets = false' –

Trả lời

10

có, điều đó có thể là do bộ điều khiển xem con được nhúng trong chế độ xem vùng chứa được hiển thị, đó là con trực tiếp của UINavigationController, điều này làm cho collectionView rời khỏi 64 inset đầu.

để giải quyết vấn đề này, Theo quan điểm của con người xây dựng giao diện điều khiển của bạn, bỏ chọn điều chỉnh scrollview insets

In your child view controller interface builder, unmark adjust scrollView insets

này nên giải quyết vấn đề của bạn

CẬP NHẬT

Như Dan đề nghị, chúng tôi cũng có thể sửa lỗi theo chương trình, bằng cách gọi

automaticallyAdjustsScrollViewInsets = false 

trong chế độ xemDidLoad() của UIViewController

+1

Đó là nó, và khớp với câu trả lời tôi tìm thấy từ liên kết @Scott Thompson được đăng ở trên. Tôi thực sự đặt một dòng trong viewDidLoad() vì vậy nó sẽ ít "ẩn" khi tôi trở lại vài tháng kể từ bây giờ ...; o) 'automaticAdjustsScrollViewInsets = false' –

+0

Dường như cả bộ điều khiển container và bộ điều khiển con phải không được chọn để làm cho nó hoạt động. – Terence

+0

Nó chỉ cần thiết cho bộ điều khiển có chứa scrollView trong đó! –

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