2015-02-13 13 views
7

Bên trong Bộ sưu tập Xem Layout của tôi (một lớp con của UICollectionViewFlowLayout) Tôi đã xác định:phương pháp UICollectionViewDelegateFlowLayout không được gọi vào vòng xoay

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds { 
    return YES; 
} 

Kỳ vọng của tôi là kể từ khi luân chuyển là một sự thay đổi giới hạn, bố trí của tôi sẽ được tính lại. Tuy nhiên, khi tôi đặt điểm ngắt tại:

- (CGSize)collectionView:(UICollectionView *)collectionView 
        layout:(UICollectionViewLayout *)collectionViewLayout 
    sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 

Điểm ngắt không được kích hoạt khi màn hình xoay. Có ai biết tại sao không?

Trả lời

2

Bộ sưu tậpXem: bố cục: sizeForItemAtIndexPath: phương pháp nên được triển khai trong lớp là lớp UI CollectionViewDelegate. Không có trong lớp con của UICollectionViewLayout. Bạn đã triển khai nó ở đâu?

PS. Không cần sử dụng cả hai. Nếu bạn có một lớp UICollectionViewLayout tùy chỉnh, hãy sử dụng layoutAttributesForItemAtIndexPath: thay vì

+0

Tôi đã thực hiện 'collectionView: layout: sizeForItemAtIndexPath:' bên trong trình điều khiển chế độ xem là đại biểu của chế độ xem bộ sưu tập. Sử dụng 'layoutAttributesForItemAtIndexPath:' không hoạt động cho tôi. –

+1

Việc triển khai collectionView: layout: sizeForItemAtIndexPath trong cùng một lớp với CollectionViewDelegate, đã làm việc cho tôi .. –

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