iOS---UICollectionView简单使用
来源:互联网 发布:什么软件可以刷机 编辑:程序博客网 时间:2024/05/19 14:00
转载自:http://blog.csdn.net/Apple_app/article/details/38867123
首先认识一下UICollectionView
- NS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionView : UIScrollView
UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。
使用UICollectionView 必须实现UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout这三个协议。
下面给出一些常用方法,具体的使用可以参考Demo:点我下载 苹果官方Demo:点我下载
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- self.title = @"UICollectionView学习";
- //通过Nib生成cell,然后注册 Nib的view需要继承 UICollectionViewCell
- [self.collectionView registerNib:[UINib nibWithNibName:@"SQCollectionCell" bundle:nil] forCellWithReuseIdentifier:kcellIdentifier];
- //注册headerView Nib的view需要继承UICollectionReusableView
- [self.collectionView registerNib:[UINib nibWithNibName:@"SQSupplementaryView" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:kheaderIdentifier];
- //注册footerView Nib的view需要继承UICollectionReusableView
- [self.collectionView registerNib:[UINib nibWithNibName:@"SQSupplementaryView" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:kfooterIdentifier];
- //
- self.collectionView.allowsMultipleSelection = YES;//默认为NO,是否可以多选
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- #pragma mark -CollectionView datasource
- //section
- - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
- {
- return 2;
- }
- //item个数
- - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
- {
- return 6;
- }
- // The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath:
- - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
- {
- //重用cell
- UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:kcellIdentifier forIndexPath:indexPath];
- //赋值
- UIImageView *imageView = (UIImageView *)[cell viewWithTag:1];
- UILabel *label = (UILabel *)[cell viewWithTag:2];
- NSString *imageName = [NSString stringWithFormat:@"%ld.JPG",(long)indexPath.row];
- imageView.image = [UIImage imageNamed:imageName];
- label.text = imageName;
- cell.backgroundColor = [UIColor redColor];
- return cell;
- }
- // The view that is returned must be retrieved from a call to -dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:
- - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
- NSString *reuseIdentifier;
- if ([kind isEqualToString: UICollectionElementKindSectionFooter ]){
- reuseIdentifier = kfooterIdentifier;
- }else{
- reuseIdentifier = kheaderIdentifier;
- }
- UICollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind :kind withReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
- UILabel *label = (UILabel *)[view viewWithTag:1];
- if ([kind isEqualToString:UICollectionElementKindSectionHeader]){
- label.text = [NSString stringWithFormat:@"这是header:%d",indexPath.section];
- }
- else if ([kind isEqualToString:UICollectionElementKindSectionFooter]){
- view.backgroundColor = [UIColor lightGrayColor];
- label.text = [NSString stringWithFormat:@"这是footer:%d",indexPath.section];
- }
- return view;
- }
- //定义每个UICollectionViewCell 的大小
- - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
- {
- return CGSizeMake(60, 80);
- }
- //定义每个Section 的 margin
- -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
- {
- return UIEdgeInsetsMake(15, 15, 5, 15);//分别为上、左、下、右
- }
- //返回头headerView的大小
- -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
- CGSize size={320,45};
- return size;
- }
- //返回头footerView的大小
- - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
- {
- CGSize size={320,45};
- return size;
- }
- //每个section中不同的行之间的行间距
- - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
- {
- return 10;
- }
- //每个item之间的间距
- //- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
- //{
- // return 100;
- //}
- //选择了某个cell
- - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
- {
- UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
- [cell setBackgroundColor:[UIColor greenColor]];
- }
- //取消选择了某个cell
- - (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
- {
- UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
- [cell setBackgroundColor:[UIColor redColor]];
- }
0 0
- iOS UICollectionView简单使用
- iOS UICollectionView简单使用
- iOS UICollectionView简单使用
- iOS UICollectionView简单使用
- iOS UICollectionView简单使用
- iOS---UICollectionView简单使用
- iOS ---UICollectionView简单使用
- iOS UICollectionView简单使用
- iOS学习9:UICollectionView的简单使用
- IOS基础_ UICollectionView的简单使用
- iOS学习笔记6- iOS UICollectionView简单使用
- UICollectionView的简单使用
- UICollectionView 简单使用
- UICollectionView的简单使用
- UICollectionView的简单使用
- UICollectionView 简单使用
- UICollectionView的简单使用
- UICollectionView的简单使用
- 【Java并发编程实战】—–“J.U.C”:CyclicBarrier
- 解决同一页面jQuery多个版本或和其他js库冲突方法
- 利用ajax异步post方式校验验证码
- ajax格式
- [原]形态学变换
- iOS---UICollectionView简单使用
- MYSQL常用语句
- 自定义cell
- 【Java并发编程实战】—–“J.U.C”:CountDownlatch
- Cuda编程总结2013-10-120:32:46
- JAVA基础(13) javaMail发送邮件设置发件人中文昵称
- 推荐!手把手教你使用Git
- MyBatis Generator自动生成Dto、Dao、Mapping
- 发送短信方法