IOS開發之xib解決自定義CollectionCell問題


這幾天一直在糾結一件事情,搞的我是食不能安,寢不能睡啊;

當程序員在面對一個自己解決不了的問題的時候,也許是該程序員開始成長的時候 、、、

先說說,事件的起因:

之前是源於在網上下載的文檔,使用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了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM