UICollectionView的用法小结
来源:互联网 发布:mysql自定义排序规则 编辑:程序博客网 时间:2024/05/17 23:07
UICollectionView的简单用法,具体可参考http://blog.csdn.net/majiakun1/article/details/17204693,有相关的三篇博客,个人感觉还不错,以下是个人的简单理解与应用,可以满足最简单的没有什么特殊展现形式的UICollectionView,后期鄙人也会不断的学习完善,以下是代码有Demo完整的展示,并且都附有注释详解,应该会很容易理解的,希望对各位有帮助,有啥不足的地方或者意见、建议,真心希望留言,咱们共同学习,一起进步,谢谢!
//// ViewController.m// UICollertionViewDemo//// Created by Red_Coral on 15/7/30.// Copyright (c) 2015年 Red_Coral. All rights reserved.//#import "ViewController.h"#define COLLECTIONVIEW_HEADERSECTION_IDENTIFIER @"collectionViewHeaderSctionView_indentifier"#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate>@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical]; flowLayout.headerReferenceSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width,100); UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height-2) collectionViewLayout:flowLayout]; //这侧UICollectionViewCell(此处也可以自定义的cell类),但是后面的identifier和下面引用的必须要一致 [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell_identifier"]; //注册UICollectionView的section的Header或者footer,同样也要注意identifier的一致性 [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:COLLECTIONVIEW_HEADERSECTION_IDENTIFIER]; collectionView.backgroundColor = [UIColor redColor]; collectionView.dataSource = self; collectionView.delegate = self; collectionView.shouldGroupAccessibilityChildren = YES; [self.view addSubview:collectionView]; }//确定UICollectionView每个章节有几个元素cell,- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 10;}
//确定UICollectionView有几个章节,(这个方法可以省略)默认是一个- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 2;}//制定每个cell将要在试图上展线成的样式及其内容- (UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString *tempStr = @"UICollectionViewCell_identifier"; UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:tempStr forIndexPath:indexPath]; [cell sizeToFit]; if (!cell) { NSLog(@"无法创建CollectionViewCell时打印,自定义的cell就不可能进来了。"); } cell.backgroundColor = [UIColor greenColor]; return cell;}/* *1、此处为Supplementary Views 追加视图 (类似Header或者Footer) *2、用到的identifier需要和注册的一致(可在此处添加自定义) */- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { NSLog(@"kind: %@",kind); UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind: UICollectionElementKindSectionHeader withReuseIdentifier:COLLECTIONVIEW_HEADERSECTION_IDENTIFIER forIndexPath:indexPath]; headerView.backgroundColor = [UIColor yellowColor]; return headerView;}//确定每个cell的宽和高- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ //cell的宽、高 return CGSizeMake((SCREEN_WIDTH-3)/4., (SCREEN_WIDTH-3)/4.);}//定义每个UICollectionView的cell的layout情况,ps:你可以将下面的值意义改变,看看效果-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ return UIEdgeInsetsMake(10, 0, 0, 0);}//定义每个UICollectionView items列与列之间的间隔- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { return 1;}//items行与行之间的间隔- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { return 1;}#pragma mark - UICollectionViewDelegate//UICollectionView被选中时调用的方法-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"选择第%ld章%ld个cell",(long)indexPath.section,(long)indexPath.row);}//返回这个UICollectionView是否可以被选择-(BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath{ return YES;}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; }@end
0 0
- UICollectionView的用法小结
- ios UICollectionView 的用法
- UICollectionView的基本用法
- UICollectionView的基本用法
- UICollectionView的用法
- UICollectionView的基础用法
- iOS UICollectionView的用法
- UICollectionView的基础用法
- UICollectionView小结
- [Swift 开发] UICollectionView的用法
- 小结:UICollectionView 相关的属性和方法
- UICollectionView的更深层次的用法
- UICollectionView和自定义UICollectionViewCell的基本用法
- UICollectionView使用小结
- UICollectionView 高级用法
- UICollectionView 基本用法
- UICollectionView用法总结
- iOS-UICollectionView用法
- ssh传输本地文件
- Codeforces 606E Freelancer's Dreams - 线性规划
- [ WARN ] Keyword 'Capture Page Screenshot' could not be runon failure: No browser isopen
- C++函数指针
- LVS集群的负载调度
- UICollectionView的用法小结
- HDU1251 统计难题 字典树裸题
- QT 实现QLabel上的超链接
- linux命令-tar
- 今天的问题
- NOI2015 软件包管理器 树剖+线段树
- log4j
- 查看页面,强制以高级浏览器打开
- 【Android】开源 闲暇(Leisure) 阅读类应用的开发