[英]collectionView.collectionViewLayout.invalidateLayout()
[英]Use CollectionViewLayout of a CollectionView created in XIB?
我有一個名為“ ImageViewController.xib”的XIB,其中包含一個集合視圖。在xib內的該集合視圖上設置了所需的集合視圖布局。
嘗試運行我的應用程序時,出現錯誤消息:
'UICollectionView must be initialized with a non-nil layout parameter'
我在ImageViewController中使用此:
-(id) initWithImages:(NSArray *)imagesUrls
{
if (self = [super initWithCollectionViewLayout:self.collectionViewLayout]) {
self.imageUrls = [[NSArray alloc] initWithArray:imagesUrls];
}
[self.collectionView registerNib:[UINib nibWithNibName:@"ImageCell" bundle:nil] forCellWithReuseIdentifier:@"Cell"];
return self;
}
我只想使用在XIB中設置的布局,而不能以編程方式進行布局。
您可以將collectionViewLayout添加到viewDidLoad中的collectionView中。
創建您的collectionViewLayout例如:
UICollectionViewFlowLayout * flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flowLayout.minimumLineSpacing = 5;
flowLayout.minimumInteritemSpacing = 5;
flowLayout.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);
然后我們將其設置為collectionView的流布局
_collectionView.collectionViewLayout = flowLayout;
我在一個很好的教程中找到了這個答案,可以在這里找到
希望這會有所幫助
嘗試在您的視圖中添加此內容,Load方法是否執行了我擺脫它的操作
UICollectionViewFlowLayout* flowLayout = [[UICollectionViewFlowLayout alloc]init];
flowLayout.itemSize = CGSizeMake(100, 100);
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"MyCell"];
這對我有用...您看到什么錯誤告訴您布局不應該為nil,布局的框架相對於其父視圖設置,布局在初始化期間傳遞給父類,檢查您的CollectionViewLayout是否為“ Null”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.