2013-01-07 27 views
6

Tôi đã tạo một mẫu ứng dụng rất đơn giản (Mã nguồn trên github) bằng cách sử dụng UICollectionView.Tại sao AutoLayout không quản lý UICollectionView của tôi

Mọi thứ đều hoạt động tốt, miễn là ứng dụng ở chế độ dọc. Tuy nhiên, khi nó được thay đổi thành chế độ nằm ngang, ô nội dung không được thay đổi kích thước phù hợp và do đó, không có gì được hiển thị.

Tôi nghĩ rằng tất cả các ràng buộc AutoLayout cần thiết được đặt ra. Tôi biết rằng tôi có thể triển khai collectionView:layout:sizeForItemAtIndexPath:, nhưng mục tiêu của tôi là sử dụng AutoLayout nhiều nhất có thể (chỉ cần hiểu AutoLayout tốt hơn).

tôi thiếu gì ở đây?

Trả lời

9

Bạn có thể sử dụng tính năng tự động điền để đặt vị trí và kích thước của chế độ xem bộ sưu tập. Và bạn có thể sử dụng autolayout để thiết lập vị trí và kích thước của các subviews trong mỗi ô. Nhưng bạn không thể sử dụng autolayout để kiểm soát vị trí và kích thước của các tế bào. Bạn phải sử dụng đối tượng bố cục của chế độ xem bộ sưu tập để đặt vị trí và kích thước của từng ô xem bộ sưu tập. Nếu bạn muốn các ô thay đổi kích thước khi định hướng giao diện thay đổi, bạn phải cập nhật đối tượng bố cục của mình để báo cáo kích thước mới và làm mất hiệu lực bố cục.

+2

Kể từ iOS 8, bạn có thể tự tạo kích thước ô. Cách bố trí sẽ tạo ra một thể hiện của ô của bạn khi thích hợp và bạn có thể sử dụng các ràng buộc autolayout hoặc override sizeThatFits :. Bố cục phải có bộ thuộc tính ước tính của nó. – fatuhoku

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