iOS UI 的坑:不要 remove UITableViewCell 的 contentView
来源:互联网 发布:数据挖掘 经典书籍 编辑:程序博客网 时间:2024/05/16 15:41
问题背景
看到标题,你可能会想,怎会有人傻到这么做?好吧,一个像我一样没有经验的程序员的确可能。 这个问题的背景是,在需要重绘UITableViewCell时,经常遇到需要清空所有subview的情况。而我们有这样一段代码可以利用:
UIView+Utils.m
- (void)removeAllSubviews { for (UIView *subView in self.subviews) { [subView removeFromSuperview];}}
正确的做法
正确的做法是,把所有的子 view 都加在 contentView上。
SomeTableViewCell.m
[self.contentView removeAllSubviews];// ……[self.contentView addSubview:view];
错误的做法
错误的做法是,把子 view 加在 cell 本身的 view 上。
SomeTableViewCell.m
[self removeAllSubviews];// ……[self addSubview:view];
这样在removeAllSubviews时,不仅 remove 掉了自己添加的那些子 view,也一同 remove 掉了UITableViewCell的contentView。
错误的后果
错误的做法造成的后果是:在 iOS 7(测试用版本为7.1)上,cell 显示为一片空白。所有的 subview 都显示不出来。在 iOS 6 和 iOS 8 上均正常。
总结
千万不要 remove UITableViewCell的contentView一定要测试到每个系统版本。在 iOS 6 和 iOS 8 都正常,仅在 iOS 7 上出现的 bug,是真的存在的。
0 0
- iOS UI 的坑:不要 remove UITableViewCell 的 contentView
- iOS UI 的坑:不要 remove UITableViewCell 的 contentView
- UITableViewCell的contentView
- Cell简介和UITableViewCell的contentView
- 关于(UITableViewcell)contentView高度的问题
- iOS UICollectionViewCell 的 contentView 注意事项
- UITableViewCell的contentView中的UITextField的值获取的方法
- UITableViewCell使用cell和cell.contentView的区别
- UITableViewCell中的使用cell和cell.contentView的区别
- iOS cell与cell.contentView的区别
- UI基础-iOS黑马-UITableViewCell的常见属性3-LoLdemo
- iOS开发UI篇—UITableviewcell的性能问题
- iOS开发UI篇—UITableviewcell的性能问题
- iOS笔记UI--修改系统UITableViewCell的ImageView大小
- iOS开发-UI控件:UITableViewCell划动删除的实现
- UITableViewCell选中时contentView中各组件的高亮状态
- IOS UITableViewCell的使用
- iOS UITableviewCell的删除
- 图像识别数据库
- 关于final
- 【U3D学习】塔防游戏01
- Android mvp 架构的自述
- springmvc /struts2工作机制
- iOS UI 的坑:不要 remove UITableViewCell 的 contentView
- Makefile 学习日记(三)——makefile的瘦身
- Libevent源码分析(三)--- IO多路复用模型
- JavaScript子文本传到父文本框显示
- 从MAC上生成pem文件用于推送
- 通用JSON生成器3
- 快速排序(分治法O(nlogn))
- 求最大公因子-欧几里德算法
- 第三周项目2