快速創(chuàng)建 collectionView

快速創(chuàng)建collectionView的代碼
#pragma mark - 設置collectionView界面
- (void)setupUI {
    //1.初始化layout
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    //設置collectionView滾動方向
    //    [layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
    //設置headerView的尺寸大小
    layout.headerReferenceSize = CGSizeMake(self.view.frame.size.width, 44);
    //該方法也可以設置itemSize
    layout.itemSize =CGSizeMake(SCREEN_WIDTH / 3 - 1, 130);
    
    //2.初始化collectionView
    UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
    [self.view addSubview:collectionView];
    collectionView.backgroundColor = [UIColor clearColor];
    
    //3.注冊collectionViewCell
    //注意,此處的ReuseIdentifier 必須和 cellForItemAtIndexPath 方法中 一致 均為 cellId
    [collectionView registerClass:[HDUICollectionViewCell class] forCellWithReuseIdentifier:cellId];
    
    //注冊headerView  此處的ReuseIdentifier 必須和 cellForItemAtIndexPath 方法中 一致  均為reusableView
    [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"reusableView"];
    
    //4.設置代理
    collectionView.delegate = self;
    collectionView.dataSource = self;
    
    _collectionView = collectionView;
}


#pragma mark collectionView代理方法
//返回section個數(shù)
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    if (self.pictureCategoryModel) {
        return self.pictureCategoryModel.showapi_res_body.list.count;
    }
    else {
        return 0;
    }
}

//每個section的item個數(shù)
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return self.pictureCategoryModel.showapi_res_body.list[section].list.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    HDUICollectionViewCell *cell = (HDUICollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];
    cell.title = self.pictureCategoryModel.showapi_res_body.list[indexPath.section].list[indexPath.row].name;
    cell.backgroundColor = [UIColor yellowColor];
    return cell;
}

//設置每個item的尺寸
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    return CGSizeMake(SCREEN_WIDTH / 3 - 1, 130);
}

//// footer的size
//- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
//    return CGSizeMake(10, 10);
//}
//
//// header的size
//- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
//    return CGSizeMake(SCREEN_WIDTH, 44);
//}

//設置每個item的UIEdgeInsets
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    return UIEdgeInsetsMake(0, 0, 0, 0);
}

//設置每個item水平間距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
    return 0;
}

//設置每個item垂直間距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
    return 1;
}

//通過設置SupplementaryViewOfKind 來設置頭部或者底部的view,其中 ReuseIdentifier 的值必須和 注冊是填寫的一致鲤竹,本例都為 “reusableView”
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
    UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"reusableView" forIndexPath:indexPath];
    
    // 此循環(huán)是解決組頭視圖復用問題
    for (UIView *view in headerView.subviews) {
        [view removeFromSuperview];
    }
    headerView.backgroundColor =[UIColor grayColor];
    UILabel *label = [[UILabel alloc] initWithFrame:headerView.bounds];
    for (NSInteger i = 0; i<self.pictureCategoryModel.showapi_res_body.list.count; i++) {
        if (indexPath.section==i) {
            label.text = self.pictureCategoryModel.showapi_res_body.list[indexPath.section].name;
        }
    }
    label.font = [UIFont systemFontOfSize:20];
    NSString *dLabelString = label.text;
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:dLabelString];  
    NSMutableParagraphStyle   *paragraphStyle   = [[NSMutableParagraphStyle alloc] init];
    //第一行頭縮進
    [paragraphStyle setFirstLineHeadIndent:15.0];
    //行間距
    //[paragraphStyle setLineSpacing:5.0];
    //段落間距
    //[paragraphStyle setParagraphSpacing:10.0];
    //頭部縮進  
    //[paragraphStyle setHeadIndent:15.0];  
    //尾部縮進  
    //[paragraphStyle setTailIndent:250.0];  
    //最小行高  
    //[paragraphStyle setMinimumLineHeight:20.0];  
    //最大行高  
    //[paragraphStyle setMaximumLineHeight:20.0];  
    
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [dLabelString length])];  
    [label setAttributedText:attributedString];
    [headerView addSubview:label];
    return headerView;
}

//點擊item方法
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    HDUICollectionViewCell *cell = (HDUICollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
//    NSString *msg = cell.title;
//    NSLog(@"%@",msg);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市流译,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌者疤,老刑警劉巖福澡,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異驹马,居然都是意外死亡革砸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門糯累,熙熙樓的掌柜王于貴愁眉苦臉地迎上來算利,“玉大人,你說我怎么就攤上這事泳姐⌒茫” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長缎患。 經(jīng)常有香客問我慕的,道長,這世上最難降的妖魔是什么挤渔? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任肮街,我火速辦了婚禮,結(jié)果婚禮上蚂蕴,老公的妹妹穿的比我還像新娘低散。我一直安慰自己俯邓,他們只是感情好骡楼,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稽鞭,像睡著了一般鸟整。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朦蕴,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天篮条,我揣著相機與錄音,去河邊找鬼吩抓。 笑死涉茧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的疹娶。 我是一名探鬼主播伴栓,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雨饺!你這毒婦竟也來了钳垮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤额港,失蹤者是張志新(化名)和其女友劉穎饺窿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體移斩,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡肚医,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了向瓷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忍宋。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖风罩,靈堂內(nèi)的尸體忽然破棺而出糠排,到底是詐尸還是另有隱情,我是刑警寧澤超升,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布入宦,位于F島的核電站哺徊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏乾闰。R本人自食惡果不足惜落追,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涯肩。 院中可真熱鬧轿钠,春花似錦、人聲如沸病苗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硫朦。三九已至贷腕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咬展,已是汗流浹背泽裳。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留破婆,地道東北人涮总。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像祷舀,于是被迫代替她去往敵國和親瀑梗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫蔑鹦、插件夺克、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,022評論 4 62
  • 翻譯自“Collection View Programming Guide for iOS” 0 關于iOS集合視...
    lakerszhy閱讀 3,827評論 1 22
  • 由于沒有用過collectionview哟忍,也是剛開始純代碼布局狡门,所以查了很多資料和問了一些朋友,總算解決問題 在v...
    丶逝水流年閱讀 3,737評論 1 5
  • 精神病院的病房里锅很,入住了一個新來的患者(我們姑且叫他A吧)其馏。病房里原有一位老患者(我們姑且把他叫做B吧),正為沒有...
    李野航閱讀 609評論 1 3
  • 孤獨大概就是每天在學校里爆安,面對來來往往的人叛复,卻沒有一個可以說心里話的人。 孤獨大概就是每天一起吃飯上課的室友,也只...
    2301閱讀 171評論 0 0