iOS UICollectionView 纯代码,无xib

//

1)  必须使用下面的方法进行Cell类的注册:

//    - (void)registerClass:forCellWithReuseIdentifier:

//    - (void)registerClass:forSupplementaryViewOfKind:withReuseIdentifier:

//    - (void)registerNib:forCellWithReuseIdentifier:

//    - (void)registerNib:forSupplementaryViewOfKind:withReuseIdentifier:

- (void)viewDidLoad

{

//初始化

UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayoutalloc] init];

[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];

self.collectionView =
[[UICollectionViewalloc]initWithFrame:CGRectMake(0, kNavHeight, kDeviceWidth,kDeviceHeight-kNavHeight*2-kTabBarHeight-20)collectionViewLayout:flowLayout];

//注册

[self.collectionView registerClass:[VideoCell class]forCellWithReuseIdentifier:@"cell"];

//设置代理

self.collectionView.delegate = self;

self.collectionView.dataSource = self;

[self.view addSubview:self.collectionView];

}

#pragma mark - collectionView delegate

//设置分区

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView

{

return 1;

}

//每个分区上的元素个数

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

{

return 24;

}

//设置元素内容

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

{

static NSString *identify = @"cell";

VideoCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identify forIndexPath:indexPath];

[cell sizeToFit];

if (!cell) {

}

VideoModel *model = [self.videoModels objectAtIndex:indexPath.row];

NSURL *url = [NSURL URLWithString:model.videoImgURL];

[cell.imgView setImageWithURL:url];

cell.titleLbale.text = model.videoTitle;

return cell;

}

//设置元素的的大小框

-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

{

UIEdgeInsets top = {5,10,15,5};

return top;

}

//设置顶部的大小

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section

{

CGSize size={0,0};

return size;

}

//设置元素大小

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

{

return CGSizeMake(240,(kDeviceHeight-kNavHeight*2-kTabBarHeight-20)/4.0);

}

//点击元素触发事件

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

{

NSLog(@"%@",indexPath);

DetailVideoViewController *detailVC = [[DetailVideoViewControlleralloc]init];

[self.navigationController pushViewController:detailVCanimated:YES];

}

时间: 2024-07-30 12:10:16

iOS UICollectionView 纯代码,无xib的相关文章

iOS开发 纯代码创建UICollectionView

转:http://jingyan.baidu.com/article/eb9f7b6d8a81a5869364e8a6.html iOS开发 纯代码创建UICollectionView 习惯了使用xib和StoryBoard创建UICollectionView项目工程的伙伴,需要转换使用纯代码来实现,想避免碰更多的壁,就需要认真了解创建UICollectionView过程了.创建UICollectionView比创建UITableView更加复杂,初始化方式也是相对奇特.以下是使用纯代码创建UI

iOS学习3_UI开发之纯代码/storyboard/xib

由于做android开发时间比较长,按照android的经验,一般开发界面都是使用xml来写布局文件的,很少会完全使用代码来写布局,最近刚学iOS,发现好多都是直接使用代码来写布局的.看视频学习刚好看到这个不错的小项目,因此做了一点小小的整理. 要实现的效果如下,点击加号添加一条,点击回收投标删除最下面一条,点击删除会删除当前的一条.点击头片会更改中间的文字.删除/添加会伴随动画. 1.使用纯代码来写布局 点击添加按钮 - (IBAction)add:(UIBarButtonItem *)sen

ios 用纯代码写程序的时候,navigationController的导航栏的设置

我们都知道,如果用storyBoard设置导航栏很容易,点击左右item的时候,进入下一个界面,导航栏的颜色是跟上一层的是一样的,用纯代码写的时候,可以在当前控制器,和从当前控制器进入到下一个控制器都用代码实现对导航栏的控制,但是,每次都写代码设置,很麻烦,所以,可以这样: 创建一个MainTabBarController的类,在Appdelegate.m里面完成: - (BOOL)application:(UIApplication *)application didFinishLaunchi

IOS 之纯代码计算cell的搞定(文字+图片)

1.自从换了工作之后,好久都没有碰自己的博客园了,今天刚好学到这个知识点就想起来写点东西了呀,tableview的使用在我们的应用的十分广泛,我特地的学习了下纯代码计算的cell的高度,在计算的中遇到了几个问题,但是还解决了,我直接上代码啦!!使用的是mvc的框架来实现的高度的计算,这里是自己的写的数据,不是接口的数据.用来测试了!! 2.项目中包括下面几个类:(model,Frame, tableviewcell , controller)这四个类 :(纯代码计算高Demo来说明下) 3.Mo

iOS:UICollectionView纯自定义的布局:瀑布流布局

创建瀑布流有三种方式: 第一种方式:在一个ScrollView里面放入三个单元格高度一样的tableView,禁止tableView滚动,只需让tableView随着ScrollView滚动即可.这种方式太奇葩,不太推荐使用... 第二种方式:在一个ScrollView里面从左到右依次放入三个UIView,当ScrollView滚动时,如果之前的三个view消失就将它们存入自定义的缓冲池,即数组中,下拉时再从数组中取出这三个view放到之前三个view位置的下面.但是,切记,每次要依次计算补全最

iOS:UICollectionView纯自定义的布局:堆叠式布局、圆式布局 (一般用来制作相册)

集合视图的自动布局:UICollectionViewLayout是抽象根类,必须用它的子类才能创建实例,下面是重写的方法,计算item的布局属性 //每一次重新布局前,都会准备布局(苹果官方推荐使用该方法进行一些初始化) -(void)prepareLayout //重写layoutAttributesForItemAtIndexPath,返回每一个item的布局属性(流式布局内部已经帮助完成) -(UICollectionViewLayoutAttributes *)layoutAttribu

纯代码无图片Tips实现过程

前些日子,用百度的时候发现了一个tips效果,感觉不错,就手残的按了F12,看了一下实现过程,刚开始的时候发现很神奇,即没使用图片,也没使用"◇"符号,当然也没有css3的元素. 先看下效果: 查看并不停的尝试,终于知道怎么实现的了 首先是最重要的实现部分: .arrows { position:absolute; display:block; width:0; height:0; border:8px solid #999999; } 实现的样式如下图,左面的样式 最有意思的是,bo

IOS开发UI篇--UITableView的自定义布局==纯代码布局

UITableView中除了利用系统的UItableViewCell不能完成需求进行布局时,还可以进行自定义布局: 自定义布局分为两类:(1)利用代码进行创建 (2)利用xib进行实现: 下面对利用代码进行创建分析: 应用场景:像微博,等列表数据展示(由于微博的每个单元格的数据大小不一致,所以得计算每个单元格的大小) 分析:前提是获取列表数据,然后建立每个单元格的模型(建立单元格模型应继承UITableViewCell)复写 - (id)initWithStyle:(UITableViewCel

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中