苹果开发 笔记(34)UICollectionView
来源:互联网 发布:esxi5安装mac os 编辑:程序博客网 时间:2024/05/29 03:04
这两天一边整理UIkit的用法,一边在继续做一些练习。在投放简历的时候,我会发现每家公司要求的都不一样,有一些针对图形方面 app比较多,要求会coreText、 Textkit、 等文本处理 排版而图片处理App 则需要coreImage 、CGGraphics这个方面知识比较多。有一些需要表现,需要动画方面CA方面。结合第三方方面 有需求CpuImage 、Http请求AFNetWorking、等。
今天早上纠结一个UICollectionView 在Main.Storyboard的关联问题,无论怎样都无法显示出来。于是很纳闷,如果用纯代码,我肯定可以实现到。为了找到问题。我也尝试几种方式尝试。最后发现一个2B问题坑了自己。
创建一个控制器,继承UICollectionViewController,这种方式在拖放到storyboard的时候,我几次都遇到一个很奇怪的问题。默认情况下,ios8 拖进去的图形都是正方形显示(size class 开启时候)。我以这种方式将想显示组件继续拖进这个正方形上。这次一切都安好。然而,我切换尺寸的时候,换了一个方式,view显示的组件再也点不到了。解决的笨方法,不得不要重新创建一个,先定好尺寸再拖组件。这个就是使用storyboard 遇到其中一个很莫名的地方。
使用这个组件时候,同样遇到一个奇怪问题。不设置Layout的方式也会发生报错的情况。后来加上去才好。当我去掉了后来也可以不设置也没报错。
真是奇怪事情。
UICollectionViewFlowLayout* flowLayout = [[UICollectionViewFlowLayout alloc]init];flowLayout.itemSize = CGSizeMake(120, 120);[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];[self.collectionView setCollectionViewLayout:flowLayout];
最让我想不到的事情,我关联一个UIcollectionViewCell,然后又注册这个,结果我发现这句话导致我一直UIcollectionViewCell 显示不出来的原因。去掉即可。在Storyboard 已经做了一个创建一个UIcollectionViewCell的时候,这行代码则不需要加
否则就是要加上这句话才能注册进去。使用Storyboard 的时候,遇到各种奇奇怪怪的问题。之前忘记在组件上设置dataSource 和delegate关联的时候导致UITableView 显示不到数据。这些都是使用的时候往往会忘记的。所以今天记录下来
[self.collectionView registerClass:[KCollectionViewCell class] forCellWithReuseIdentifier:@"KCollectionViewCell"];
设置代理关联。
-(NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ return [self.heroDatas count]/2;}-(NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ return 2;}-(UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ KCollectionViewCell *cell =[collectionView dequeueReusableCellWithReuseIdentifier:@"KCollectionViewCell" forIndexPath:indexPath]; NSDictionary *dictionary =[self.heroDatas objectAtIndex:indexPath.section *2 + indexPath.row]; return cell;}
KCollectionViewCell 自定义的类。这个代理方式和UITableView的方式类似,有几个组件使用方式也类似的。就是很多时候API都不知道怎样用,除了靠猜,靠查询,还真是看文档。
遇到几个问题:MainStoryboard 拖放了控制后,在选定了尺寸方式后,如果再改就会出现组件原先的组件不能再点问题。
2.注册UICollectionViewCell时候,要注意看是否已经在控制器内部CollectionView拖放进来,还是自定义纯代码书写。
除此之外,还有一些获取控制器的方式如下UIStoryboard 的方式来获取。
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"firstViewController"]; [self.navigationController pushViewController:vc animated:YES];
今晚到此为止,好,明天继续修正这个。
- 苹果开发 笔记(34)UICollectionView
- 苹果开发 笔记(1)
- 苹果开发 笔记(2)
- 苹果开发 笔记(3)
- 苹果开发 笔记(4)
- 苹果开发 笔记(9)
- 苹果开发 笔记(10)
- 苹果开发 笔记(13)
- 苹果开发 笔记(14)
- 苹果开发 笔记(15)
- 苹果开发 笔记(16)
- 苹果开发 笔记(17)
- 苹果开发 笔记(18)
- 苹果开发 笔记(19)
- 苹果开发 笔记(20)
- 苹果开发 笔记(21)
- 苹果开发 笔记(22)
- 苹果开发 笔记(23)
- 4-6
- java连接MongoDB查询导出为excel表格
- 【转】android开源项目---developer篇
- 黑马程序员---简单的文件打开器
- 正确理解ThreadLocal
- 苹果开发 笔记(34)UICollectionView
- 数据结构与算法10: 平衡二叉树AVL(AVL Tree)
- RHEL5.8物理机遇到Read-only file system
- iozone的使用与介绍
- 5.1-1
- FFT多项式乘法学习笔记
- rebar安装出错
- 桥接模式
- n次幂求法