iOS UICollectionView简单使用
2015-10-22 11:59
399 查看
- (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]]; }
相关文章推荐
- JAVA动态代理机制分析guide
- web_custom_request应用示例
- LoadRunner中web_custom_request 和 web_submit_data的差别
- java List<Item> its=new ArrayList<Item>(); Map按value中的某字段排序
- UI设计中色彩使用的技巧
- uip之UDP应用笔记
- uIP协议栈——转载:uIP之ARP:地址…
- 错误:Method not found: 'Void System.Web.UI.ScriptResourceDefinition.set_LoadSucce
- Hibernate中createQuery与createSQLQuery两者的区别
- leetcode@ [51/52] N-Queens
- 多线程学习之BlockingQueue
- LoadRunner中取Request、Response
- Loadrunner中web_custom_request使用场景
- Loadrunner 关联 web_custom_request综合实例
- 简单几何(求划分区域) LA 3263 That Nice Euler Circuit
- Druid是一个JDBC组件 数据库语句监控
- UGUI -Custom Font
- 黑马程序员-java基础(八)-图形用户界面GUI
- UVA - 1152 4 Values whose Sum is 0
- UI资料