集合视图 代码

#pragma mark - 设置自定义视图

- (void)loadView

{

self.rootView = [[[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];

_rootView.backgroundColor = [UIColor redColor];

self.view = _rootView;

}

- (void)viewDidLoad {

[super viewDidLoad];

// 设置数据源和代理

self.rootView.collectionView.dataSource = self;

self.rootView.collectionView.delegate = self;

// collectionViewCell只能使用storyBoard(xib)或者注册使用

[self.rootView.collectionView registerClass:[MyCollectionViewCell class] forCellWithReuseIdentifier:@"identifier"];

// 注册头区和尾区

[self.rootView.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"];

[self.rootView.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footer"];

}

#pragma mark - UICollectionViewDataSource Methods

#pragma mark 设置分区数

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

{

return 3;

}

#pragma mark 设置每个分区的个数

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

{

return 9;

}

#pragma mark 设置每个item上显示的内容

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

{

// 1. 直接去重用队列中查找,如果没有的话,会自动帮我们创建

MyCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"identifier" forIndexPath:indexPath];

// 2. 使用

cell.backgroundColor = [UIColor cyanColor];

cell.label.text = [NSString stringWithFormat:@"%ld  %ld", indexPath.section, indexPath.row];

// 3. 返回

return cell;

}

#pragma mark 处理每个分区的头区和尾区

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

{

// 对于集合视图(UICollectionView)来说,头区和尾区使用的是UICollectionReusableView类,而不是UIView,设置的时候,也需要使用重用机制

// 使用kind去判断当前是显示头区还是尾区

if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {

// 头区

UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:indexPath];

headerView.backgroundColor = [UIColor whiteColor];

return headerView;

} else {

// 尾区

UICollectionReusableView *footerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footer" forIndexPath:indexPath];

footerView.backgroundColor = [UIColor redColor];

return footerView;

}

}

#pragma mark 处理item的点击

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

{

NSLog(@"section:%ld  row:%ld", indexPath.section, indexPath.row);

}

- (void)addAllViews

{

// 初始化集合视图

// 1. 创建布局对象

UICollectionViewFlowLayout *flowLayout = [UICollectionViewFlowLayout new];

//属性

// 设置每一个的大小

flowLayout.itemSize = CGSizeMake(110, 100);

// 设置左右的最小间距

flowLayout.minimumInteritemSpacing = 5;

// 设置上下的最小间距

flowLayout.minimumLineSpacing = 5;

// 滚动方向

flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;

// 设置头区大小

flowLayout.headerReferenceSize = CGSizeMake(self.bounds.size.width, 20);

// 设置尾区的大小

flowLayout.footerReferenceSize = CGSizeMake(self.bounds.size.width, 20);

// 设置边缘嵌入的值

flowLayout.sectionInset = UIEdgeInsetsMake(5, 10, 5, 10);

// 2. 使用布局,创建集合视图,

self.collectionView = [[[UICollectionView alloc] initWithFrame:self.bounds collectionViewLayout:flowLayout] autorelease];

[flowLayout release];

[self addSubview:_collectionView];

}

- (instancetype)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

[self addAllViews];

//自定义集合视图cell设置圆角

self.layer.masksToBounds = YES;

self.layer.cornerRadius = 15;

}

return self;

}

- (void)addAllViews

{

self.label = [[[UILabel alloc] initWithFrame:CGRectMake(5, 5, 100, 30)] autorelease];

_label.backgroundColor = [UIColor yellowColor];

_label.layer.masksToBounds = YES;

_label.layer.cornerRadius = 10;

[self.contentView addSubview:_label];

}

时间: 2024-11-06 23:07:13

集合视图 代码的相关文章

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍

  1 创建集合视图,设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据. 集合视图UICollectionView继承至UIScrollView,也同tableView一样有两个协议,分别是UICollectionViewDataSource数据源协议和UIColl

集合视图

集合视图是iOS 6推出的新视图,克服了表视图中一行只能显示一个单元的缺陷.下面来简单看看怎么使用集合视图,一共有5个步骤,如下: 1.自定义单元 2.配置视图控制器 3.内容单元 4.实现流式布局 5.分区标题视图 接下来,看看每一步的操作. 自定义视图 继承UICollectionViewCell,定义自己的属性 ContentCell.h ```objc import @interface ContentCell : UICollectionViewCell @property (stro

iOS基础之CollectionView(集合视图)

在iOS6.0之后,苹果推出了?个新的继承于UIScrolleriew的一个视 图,UICollectionView,也被称之为集合视图.和UITableView共同作为 在开发中常常用的两个视图,常常作为项目的主界面出现. 代码演示: #import "YourCollectionViewCell.h" @implementation YourCollectionViewCell -(instancetype)initWithFrame:(CGRect)frame{ self = [

第二十一讲.UICollectionView(集合视图)以及瀑布流效果, 通知中心(NSNotificationCenter).

一.集合视图(UICollectionView) 1.集合视图的概念 2.如何创建 3.集合视图的布局UICollectionViewFlowLayout 4.自定义cell和 布局协议UICollectionViewDelegateFlowLayout 使用时cell一般选择自定义,而在布局时候要使用代理. UICollectionView的基本使用示例代码分析: #import "ViewController.h" #import "CollectionReusableV

swift:创建集合视图UICollectionView

swift中创建集合视图和OC中差不多,主要是实现UICollectionViewDataSource数据源协议和UICollectionViewDelegateFlowLayout自定义布局协议,其中UICollectionViewDelegateFlowLayout自定义布局协议继承自UICollectionViewDelgate.使用自定义布局,可以设置集合视图单元格的大小.位置.间距等等 例如: let flowLayout = UICollectionViewFlowLayout()

UICollectionView 集合视图 的使用

直接上代码: // // RootViewController.m // // #import "RootViewController.h" #import "CollectionViewCell.h" @interface RootViewController ()<UICollectionViewDataSource, UICollectionViewDelegate> @property (nonatomic, retain) UICollecti

IOS 集合视图指南2:集合视图基础

Collection View Basics(集合视图基础) To present its content onscreen, a collection view cooperates with many different objects. Some objects are custom and must be provided by your app. For example, your app must provide a data source object that tells the

IOS 集合视图指南1:介绍

About iOS Collection Views(关于IOS集合视图) A collection view is a way to present an ordered set of data items using a flexible and changeable layout. The most common use for collection views is to present items in a grid-like arrangement, but collection v

集合视图(UICollectionView)

集合视图的四个组成部分: 单元格:它是集合视图中的一个单元格. 节:它是集合视图中的一个行数据,由多个单元格构成 补充视图:它是节的头和脚 装饰视图:集合视图中的背景图. UICollectionView继承自UIScrollView.有两个协议:UICollectionViewDelegate委托协议和UICollectionViewDataSource数据源协议. UICollectionViewCell是单元格类,它的布局是有UICollectionViewLayout类定义的,它是一个抽