UICollectionViewCell 所遇到的问题

刚开始学习iOS开发,今天用到了UICollectionView,遇到了点问题。

自定义了一个PortalViewCell,当然继承于UICollectionViewCell,然后在故事版中把它和cell关联起来。

PortalViewCell中提供了一个公有方法:

-(void) setupCellView;

接着在 cellForItemAtIndexPath中编写:

1 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
2     PortalViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
3     [cell setupCellView];
4
5     return cell;
6 }

编译完成,正确无误,运行起来 duang~挂掉了,报错信息

 *** Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason: ‘-[UICollectionViewCell setupCellView]: unrecognized selector sent to instance 0x7fd7535df8c0‘

找了好久,没天理啊,PortalViewaCell有这个方法啊!!!!!又看了看发现viewDidLoad中有这么一句话:

    // Register cell classes
    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];

这是搞什么?注册cell类?删掉,重新运行就OK了。

时间: 2024-08-30 00:07:12

UICollectionViewCell 所遇到的问题的相关文章

[IOS]swift自定义uicollectionviewcell

刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollectionviewcontroller,而是添加的uicollectionview到我的storyboard, 然后再新建一个swift的文件,让这个swift继承uicollectionviewcell import Foundation class SVGCell :UICollectionView

UICollectionViewCell定制Button

UICollectionViewCell定制Button 效果 特点 1.能够动态设置每行显示的按钮的个数,以及控件的摆放格式 2.实现单选或者多选的功能,实现点击事件 3.自定制按钮的显示样式 用法 1.下载源码后,将文件中的GridCollectionView.h/.m文件,  CustomCollectionViewCell.h/.m文件,  TypeCellClass.h/.m文件导入工程中. 2.注意:你所创建的cell要继承CustomCollectionViewCell.然后你的c

UICollectionViewCell「居左显示」

UICollectionViewCell「居左显示」 准备: 1.UICollectionView Left Aligned Layout 一款UICollectionView居左显示的约束点击下载_UICollectionView Left Aligned Layout UICollectionView Left Aligned Layout 工程目录: 工程目录 自定义UICollectionViewCell CollectionViewCell.h 创建UILabel属性,用来传值 #im

在StoryBoard对UICollectionViewCell 进行Autolayout是遇到的Xcode6.01的BUG

使用Sb对UICollectionViewCell 的内容进行Autolayout约束时候,发现了一个Xcode6.01的BUG,就是你对UICollectionCell约束完了之后,在模拟器上现实的Label是居中,但是真机显示的确实不是居中,后来Google了一下,发现了问题,这是因为使用ios8 SDk编译出来的项目运行在iOS 7引起ContentView大小没有变导致的,解决办法之一:就是在你的定义的UICollectionViewCell 的子类重LayoutSubviews方法,在

通过Xib创建 UICollectionView 和自定义UICollectionViewCell

1.在控制器的viewDidLoad方法中添加代码 CGFloat itemWidth = (kScreenW - kSpacingW * 3) / 2; NSLog(@"itemWidth == %f",itemWidth); CGFloat itemHeight = itemWidth * 0.75 + 71; NSLog(@"itemWidth == %f",itemHeight); UICollectionViewFlowLayout*layout = [[

UICollectionViewCell设置阴影

//@mg:masksToBounds必须为NO否者阴影没有效果 // cell.layer.masksToBounds = NO; cell.layer.contentsScale = [UIScreen mainScreen].scale; cell.layer.shadowOpacity = 0.75f; cell.layer.shadowRadius = 4.0f; cell.layer.shadowOffset = CGSizeMake(0,0); cell.layer.shadowP

关于 UICollectionViewCell 的一些误点

如果直接使用 UICollectionViewCell 的自带属性 selected 来自定义一些样式,如: - (void)setSelected:(BOOL)selected { [super setSelected:selected]; [self setNeedsDisplay]; } ,那么当你reloadData 且在 cellForItemAtIndexPath 方法中给其 selected 属性设置YES 后,无论如何你是不能触发下面两个取消选中的代理方法: - (BOOL)co

关于UICollectionViewCell重用问题

懒人直接上代码 1. UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical]; self.collView  =[[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth

【iOS bug记录】UICollectionviewCell刷新变得这么莫名其妙?

项目是一个即时聊天的社交软件,聊天流采用的是UICollectionView,随着进度的完善,发现一个特别的bug,UICollectionviewCell的复用,并没有直接insert进去,而是出现了莫名奇妙的插入方式, 这不是我的图,这是我在网上找到的,跟我的效果一样一样的.link the image 起初我以为是动画出了问题,导致keyboard跟UICollectionView起了冲突,可后来发现,关闭了所有的动画也不起作用.折腾了一天,终于在stackOverflow上找到了答案.