2014-12-30 17 views
6

Tôi cố gắng để thiết lập iOS 8 tế bào tự động định cỡ trong UICollectionViewController:
tôi đã tạo ra một thiết kế cơ bản sử dụng Storyboards và được thiết kế một UICollectionViewCell đó với một nhãn hạn chế đến giới hạn của ô. Sau đó, tôi liên kết nhãn của ô đó với lớp của Cell để có thể truy cập nó theo chương trình.
Nếu không chỉ định estimatedItemSize, mọi thứ hoạt động tốt (ngoại trừ kích thước tự động, tất nhiên).UICollectionView Kích Auto di động với AutoLayout iOS 8

Khi tôi định estimatedItemSize theo cách này:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionViewLayout; 
    layout.estimatedItemSize = CGSizeMake(100.0f, 30.0f); 
} 

ứng dụng bị treo với các thông báo lỗi:

the behavior of the UICollectionViewFlowLayout is not defined because: 
the item width must be less than the width of the UICollectionView minus the section insets left and right values. 
Please check the values return by the delegate. 

Tôi nghĩ rằng, tôi đang thiết estimatedItemSize ở một nơi sai, hoặc, nếu tôi đã có một kích thước mục được chỉ định được thiết lập trong bảng phân cảnh, do đó, nó xung đột bằng cách nào đó với kích thước ước tính.

Trả lời

4

Trả lời câu hỏi của riêng mình, vì tôi đã tìm ra lý do cho sự cố:
Để làm cho tính năng này hoạt động, UILabel phải có chiều rộng nhỏ hơn chiều rộng UICollectionView. Ngay cả khi trong Storyboard có vẻ OK, nếu AutoLayout đang được sử dụng, chiều rộng phải được hạn chế, ví dụ: trong trường hợp của tôi, tôi đã thực hiện một ràng buộc less or equal 320. Nếu không có nó, nhãn sẽ phát triển thành một chiều rộng rất lớn nhưng chỉ có chiều cao 1 dòng. Với ràng buộc này được áp dụng, gói hàng bắt đầu hoạt động và nhãn tăng chiều cao thay vì chiều rộng chỉ.

+0

Có nó sẽ hoạt động nhưng chú ý rằng đối với iphone 6 và 6+ nhãn của bạn sẽ không bao gồm tất cả chiều rộng màn hình ... – jerrygdm

+0

Tôi đã thực hiện một lối thoát và thay đổi giá trị của ràng buộc khi chạy sang chiều rộng màn hình của điện thoại. –

+0

tôi có ô có chiều rộng 150 nhưng không đổi kích thước cho iphone 6 và 6 plus. bạn có thể tìm thấy nó ở đây http://stackoverflow.com/questions/27981200/how-to-resize-uicollectionviewcell-in-iphone-6-and-6-plus-using-autolayout – Rugmangathan

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