這幾天一直在糾結一件事情,搞的我是食不能安,寢不能睡啊;
當程序員在面對一個自己解決不了的問題的時候,也許是該程序員開始成長的時候 、、、
先說說,事件的起因:
之前是源於在網上下載的文檔,使用xib自定義UITableViewcell的小文檔,當時想的情況是,xib挺簡單的,結合使用的效果也不錯,於是就在小項目之間做了一下,
但是,之后就出現了各種不服、
什么樣的都有,連續幾天,腦子里都在想這個事情,加上項目有點大,有時候程序卡的不行不行的,直到此時,在歷時3個下午的時間段里才解決,
首先我們要明確兩個ID:
一個是storyBoardID:
一個是UICollectionViewcellID:這個ID是用來找到以使來重用的
注意:使用xib的時候是不需要Id的 直接使用其名字(不帶后綴),千萬不要和storyBoard搞混了,我就是當時搞混了,導致浪費這么長時間。
接下來是使用步驟:
1.寫一個UICollectionView
//靜態字符串 static NSString *cellID = @"id"; //創建CollectionView - (void)addCollectionView{ UICollectionViewFlowLayout *layOut = [[UICollectionViewFlowLayout alloc]init]; layOut.scrollDirection = UICollectionViewScrollDirectionVertical; // 行間距 layOut.minimumInteritemSpacing = 20; // 組間距 layOut.minimumLineSpacing = 20; UICollectionView *bookCollectionView = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:layOut]; bookCollectionView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BookingbackG"]]; bookCollectionView.dataSource = self; bookCollectionView.delegate = self; [self.view addSubview:bookCollectionView]; // 注冊cellID,千萬別忘了 [bookCollectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:cellID]; }
2.自定義cell的類
3.開始規划xib,讓其繼承於自定義的cell類名。
4.聯系控件
5.重寫自定義方法
- (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self = [[NSBundle mainBundle]loadNibNamed:@"collectionViewcell" owner:self options:nil].lastObject; } return self; }
注意:這個讀取xib的東西最好要放在這里,我就是因為看別人文檔中。放在了創建cell的那個位置結果一直找不到錯誤。
6.在UICollectionView創建cell,該重用ID重用ID,千萬不要搞混淆。
然后各種精美的cell新鮮出爐
麻麻再也不擔心我為了cell去計算frame了