iOS 你用了这么久的tableView,你有遇到过这些问题吗?

通过tableView的代理方法设置组头View,却不设置组头的高度,会出现什么情况?

有时候不会调用tableView的代理方法,且tableView的高度要大于组头的高度,否则会发现返回行,返回Cell等代理方法依旧不执行。

设置了sectionHeaderHeight,又通过tableView的代理方法返回了一个带有高度的组头View,组头View的高度是否改变?

若设置了sectionView的sectionHeaderHeight则组头的高度不会因为view的高度而改变。所以若添加按钮或手势在View上,即使有时能响应,但超过组头的部位却会出现点击事件无法响应等问题,详情可查询响应链。

若在自定义方法中调用了tableView的reload方法,则此时是去刷新tableView还是等到自定义方法运行结束再去刷新?

对于tableView的reload方法,不会立刻调用,而是等到所在方法结束后才去刷新tableVIew。

若一个界面即含有tableView又包含collectionView时,则滚动时会出现什么情况?

当一个页面即含有tableView又包含collectionView时,滚动结束时调用的方法可能会都调用同一个方法:scrollViewDidEndDecelerating:(UIScrollView *)scrollView,所以要在方法内部需要对scrollView进行判断,判断一下当前scrollView属于哪个类的[[scrollView isKindOfClass:[UICollectionView class]]进而做出不一样的处理,以免出现BUG。

如何快速获取tableView或CollectionView的所有Cell?

通过[self visibleCells]可获得tableView或collectionView的所有cell。

tableView有时候会出现最后一行的Cell过高,为什么?

关于tableView有时候会出现最后一行Cell过高,是由于tableView的高度设置问题。

UITableViewCell的cell行高自动计算,为什么有时候会失效?

UITableViewCell的cell行高自动计算,需要把视图添加到ContentView里,否则有时候会出现Cell高度为默认高度而不是Cell的高度随着内容的添加而改变。

如何让tableView不显示没内容的cell?

tableView不显示没内容的cell可通过self.tableView.tableFooterView = [[UIView alloc]init];

数据量大时用PickerView还是tableView,为什么?

pickerView数据量大时不好查找,因为需要一个一个翻 ,而tableView则有个索引。

重用时cell上的contentView的内容会不会清空?

不会。所以会出现数据重叠现象,我的解决方案有如下几点:

1. 创建完cell后在创建一个与cell同等大小的view覆盖住(但是原数据还在,占内存。且瀑布流时会发现数据显示错误)。

2. 删除cell的contentView的所有子视图:

while ([cell.contentView.subviews lastObject] != nil)

{

  [(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];

}(保证了数据全部清空)

3. 通过自定义Cell,然后通过重写LayoutSubviews使得cell的frame被修改时,控件的frame也跟着改变,赋值时则对同一个对象赋值。此时只要将数据传给cell,让其自己处理即可。

有人说可以用prepareForReuse,但我试了之后发现没有成功。查了下资料说是需要重写此方法,然而此方法又是需要继承cell之后才能重写,所以不自定义cell的时候我就直接用的while循环清空视图。

若cell被同等大小的按钮覆盖住会怎样?被View覆盖住那?

被按钮覆盖住则cell的点击事件被拦截,被View覆盖住则不会。除非你给View添加一个手势监听,此时可通过按钮的点击事件来代替cell的点击事件。详情可查询响应链。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,249评论 1 9
  • 压缩图片有两种, 一种是换尺寸, 一种是压缩质量 如果是jpeg可以直接 上面等价于下面, 适用于格式为png的 ...
    NateLam阅读 2,744评论 0 4
  • 不管梦境有多么虚无缥缈,也都是来自现实生活真实体验后的内心感触,日有所思夜有所梦,梦将你内心深处的的想法加以延伸,...
    灏风阅读 1,342评论 0 0
  • 记丁酉年元宵夜雨 飞灯传语悠悠去, 云女闻息款款来。 由是月池生玉浪? 中庭人静雨花开。 话缘 尘缘前世定, 经岁...
    方好亦奇阅读 3,430评论 0 3
  • 有人说,如果你喜欢小吃,有时间一定去武汉走一走,特别是那儿的户部巷; 有人说,如果你喜欢更上一层楼,有时间一定去武...
    陪月亮摘星星阅读 3,332评论 6 6

友情链接更多精彩内容