Tôi mới đến UICollectionView
và tôi đang làm theo hướng dẫn mà tôi tìm thấy trên web nhưng tôi bị kẹt do lỗi mà tôi không thể tìm ra. Đây là một chút ngữ cảnh.UICollectionView phải được khởi tạo với thông số bố cục không phải là số
Trong debugger Tôi có thể thấy rằng sau đây đang xảy ra:
numberOfSectionsInCollectionView
: được gọi và tôi trở về 1collectionView:numberOfItemsInSection:
được gọi và tôi trở về kích thước của mô hình (20)collectionView:layout:sizeForItemAtIndexPath:
được gọi một lần cho mỗi mục trong mô hìnhcollectionView:layout:insetForSectionAtIndex:
được gọi làcollectionView:cellForItemAtIndexPath:
g ETS gọi và nó bị treo trên đường dây này ...UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];
với lỗi này ...
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UICollectionView must be initialized with a non-nil layout parameter'
Khi tôi tạm dừng thực hiện trên dòng đó và đánh dấu vào giao diện điều khiển dường như có bố cục ...
(lldb) po collectionView.collectionViewLayout
(UICollectionViewLayout *) $4 = 0x07180fd0 <UICollectionViewFlowLayout: 0x7180fd0>
UICollectionView
là một phần của cảnh một và duy nhất trong bảng phân cảnh. Trong viewController.m không có UICollectionView
s được tạo bởi bất kỳ phương tiện nào.
Có ai có ý tưởng nào không?
lỗi đó đến khi bạn thực hiện một cái nhìn bộ sưu tập mới sử dụng alloc/init hoặc mới , thay vì thêm đối tượng bố cục khi bạn khởi tạo. Bạn đang tạo chế độ xem bộ sưu tập mới ở bất kỳ đâu? – jrturton
@jrturton Không phải là tôi biết. UICollectionView là một phần của cảnh duy nhất và duy nhất trong bảng phân cảnh. Trong viewController.m không có UICollectionView được tạo bởi bất kỳ phương tiện nào. Nhưng với điều đó đã nói, và mới mẻ đối với chế độ xem bộ sưu tập, tôi không chắc chắn vị trí được liên kết với chế độ xem bộ sưu tập. –