文档章节

UICollectionView的使用方法及demo

S
 Snaiper
发布于 2016/03/22 17:51
字数 375
阅读 76
收藏 0

直接上代码,说明请看注释吧

ViewController.h

#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>{

}
@property (strong, nonatomic)UICollectionView *collectionView;

@end

ViewController.m

#import "ViewController.h" @interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{  [super viewDidLoad];    //确定是水平滚动,还是垂直滚动  UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init];  [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];    self.collectionView=[[UICollectionView alloc] initWithFrame:CGRectMake(0, 64, 320, 200) collectionViewLayout:flowLayout];  self.collectionView.dataSource=self;  self.collectionView.delegate=self;  [self.collectionView setBackgroundColor:[UIColor clearColor]];    //注册Cell,必须要有  [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];    [self.view addSubview:self.collectionView];
} #pragma mark -- UICollectionViewDataSource //定义展示的UICollectionViewCell的个数 -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{  return 10;
} //定义展示的Section的个数 -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{  return 2;
} //每个UICollectionView展示的内容 -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{  static NSString * CellIdentifier = @"UICollectionViewCell";  UICollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];    cell.backgroundColor = [UIColor colorWithRed:((10 * indexPath.row) / 255.0) green:((20 * indexPath.row)/255.0) blue:((30 * indexPath.row)/255.0) alpha:1.0f];  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];  label.textColor = [UIColor redColor];  label.text = [NSString stringWithFormat:@"%d",indexPath.row];  for (id subView in cell.contentView.subviews) {   [subView removeFromSuperview];  }  [cell.contentView addSubview:label];  return cell;
} #pragma mark --UICollectionViewDelegateFlowLayout //定义每个Item 的大小 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{  return CGSizeMake(60, 60);
} //定义每个UICollectionView 的 margin -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{  return UIEdgeInsetsMake(5, 5, 5, 5);
} #pragma mark --UICollectionViewDelegate //UICollectionView被选中时调用的方法 -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{  UICollectionViewCell * cell = (UICollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];  //临时改变个颜色,看好,只是临时改变的。如果要永久改变,可以先改数据源,然后在cellForItemAtIndexPath中控制。(和UITableView差不多吧!O(∩_∩)O~)  cell.backgroundColor = [UIColor greenColor];  NSLog(@"item======%d",indexPath.item);  NSLog(@"row=======%d",indexPath.row);  NSLog(@"section===%d",indexPath.section);
} //返回这个UICollectionView是否可以被选择 -(BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath
{  return YES;
}

@end

© 著作权归作者所有

共有 人打赏支持
S
粉丝 13
博文 100
码字总数 135194
作品 0
深圳
私信 提问
UICollectionView总结

好久没写博客了,最近闲,多写点! 1.基本介绍 先介绍一下UICollectionView,大家应该都用过UITableView,不熟悉的可以看这里《UITableView总结》,UITableView中的表格只支持单排列表,没办法...

余成海
2015/03/26
0
0
UICollectionView基本使用

显示cell 显示头部试图 显示尾部试图 都要进行注册操作 CO版本/Swift演示点此下载. 具体使用方法请见Demo 学自: 执着_执念(简书) 原址: learnDemo

阴雨音语
2016/05/03
30
0
iOS CollectionView 的那些事

UICollectionView是开发中用的比较多的一个控件,本文记录UICollectionView在开发中常用的方法总结,包括使用实现Grid布局、添加Header/Footer、自定义layout布局、UICollectionView的其它方...

aron1992
2018/08/17
0
0
iOS6 新特性集合 UICollectionView

UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。 使用UIC...

广州英趣科技
2013/06/21
0
9
cell嵌套UICollectionView Masonry布局

cell嵌套UICollectionView是项目中常用的一种功能这篇文章其实只有一个知识点 就是如何根据数据源数量的多少来动态布局UICollectionView 对Masonry布局不太熟悉的哥们 可以搜下 标哥的技术博...

codeShuai
2017/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux在线安装JDK(1.8版本)

linux在线安装JDK(1.8版本) 2018年07月03日 15:36:27 唯爱酒神 阅读数:806 标签: linux jdk安装 jdk安装 更多 个人分类: linux 在线下载JDK 命令: wget --no-check-certificate --no-c...

rootliu
44分钟前
1
0
移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

FreeModbus是Modbus的一个被广泛移植的实现。其源码在github,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对一些功能比如异常诊断和读事件计数等功能码并没有...

Konstantine
今天
3
0
浅谈神经网络(神经网络篇)

背景 之前写过浅谈神经网络基础篇,简单介绍下机器学习这块内容,用于扫盲。本文正式将神经网络,这部分是深度学习的基础。了解完可以掌握强大的机器学习的方法,也可以更好的了解深度学习。...

Uknowzheng
今天
5
0
移动硬盘变为RAW格式后的修复

在Mac上使用自己的移动硬盘结果文件系统格式变为RAW; 在自己windows笔记本上使用chkdsk H: /F进行修复,修复日志如下: C:\Users\mengzhang6>chkdsk H: /F文件系统的类型是 NTFS。卷标是 do...

晨猫
今天
7
0
10 Git —— 标签管理

10 Git —— 标签管理 本节内容: 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git......

lwenhao
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部