沉痛的教训,UITableViewCell使用总结
来源:互联网 发布:共产 革命 知乎 编辑:程序博客网 时间:2024/06/05 18:22
今天在tableview中加入自定义的cell。通过继承uitableviewcell类,实现自定义的cell。新建类,新建nib资源,加入控件,调好布局。编译运行,数据出来了,需要的布局也实现了。但有一个问题却出现了。tableview中没有分割线和右侧的箭头了。奇怪了,在cell中明明已经定义了的,也设置了cell的accessoryType 为 UITableViewCellAccessoryDisclosureIndicator。分割线也没有使用代码去掉的。反复检查了设置,在cell中加入view,再将label等控件布局全部放在加入的view中,重新运行,还是没能解决。对比之前写过的cell,设置,控件等都一样,为什么就不显示了?很是郁闷阿,就这样捣弄了快一个小时,人都几乎发疯了,就是百思不得其解,百试无得其法。shit。难道xcode4.2的storyboard跟之前的xib不一样?
......
继续抓狂了好久,遇到问题解决不了真是痛苦阿!!!
后来做最后一次尝试,打算试了不行就睡觉。将cell的view隐藏,运行后还是没能看到分割线和右侧的箭头,这次可以断定是自定义的cell的问题了,而不是cell中view或者其他控件尺寸不对挡住了分割线或者箭头。再作最后的垂死挣扎,再不行就睡觉,看到时钟已经过了1点了,我宝贵的睡眠时间就在着痛苦的折磨中白白耗掉了1个多小时。
最后的尝试是:将新定义的cell用之前定义的一个cell替代,编译运行,fuck,我狠狠地说了声,一切正常,分割线和右侧的箭头很分明的摆在眼前。这下感觉有希望了。看看两个自定义cell的代码有啥不同,之前一直是比较资源,发现没什么不同的地方。这次比较代码,发现新定义的cell类中多实现了以下这个函数:
- (void)layoutSubviews{}
这是自定义的cell类继承了UITableViewCell的函数。将其注释。编译运行。靠,这次好好的,完全没问题了。
这下知道问题所在了,原来继承了父类的函数,但函数没加自己的实现函数,所以导致了问题的出现。将这个函数注释或者改称以下都没问题:
- (void)layoutSubviews{ [super layoutSubviews]; }这是因为调用了父类的实现方式,所以保证了函数正常的运行。
这次的教训就是,不需要用到的函数不要轻易继承,就算继承了也要搞清楚是否需要调用父类的实现函数,如果继承了函数而又不调用父类的实现,那后果就很严重了。往往会出现你意想不到的问题。
此次教训,切记切记。
- 沉痛的教训,UITableViewCell使用总结
- 沉痛的教训
- 记一次接口解密失败过程的沉痛教训
- 许多舍近求远的教训总结
- 沉痛的一天
- UITableView和UITableViewCell的一点使用小总结
- IOS UITableViewCell的使用
- UITableViewCell的基本使用
- UITableViewCell的使用介绍
- UITableViewCell?的 使用
- UITableViewCell的简单使用
- 一些关于uitableviewcell的总结
- 使用ConcurrentLinkedQueue惨痛的教训
- 使用boost::shared_ptr的教训
- 使用ConcurrentLinkedQueue惨痛的教训
- 多线程下oci编程的总结教训
- 总结前人的教训(中小企业生存)
- Hadoop学习2--搭建的教训总结
- SSIS的OLEDB COMMAND中使用存储过程输出参数
- Sleep
- 关于昨天在鸿鹄上面看到一个问题-(网络)检查你是不是高手??
- 黑马程序员——基本数据类型和字符串类型
- 牢记职场生存中的10大职业铁律 让你受用一生
- 沉痛的教训,UITableViewCell使用总结
- spring3.0 MVC 配置全局日期转换
- 有理想的程序员必须知道的15件事
- host application or driver claiming the device on macosx
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- 求二叉树中节点的最大距离
- 研究生课外阅读推荐书目(仅代表个人意见)
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
- MyBatis学习 之 三、动态SQL语句