最近在做项目的时候发现的这个 Bug,网络上也没找到什么解决方法,写下这篇博客希望能够给自己和大家一点点的帮助。
BUG具体表现为:自定义了一个 headerVIew(继承自 UIView),其子控件是通过 SnapKit 来通过约束来布局,然后把这个 headerView 设置为我一个 tableView 的 tableHeaderView。然后会发现这个headerVIew 会遮住 tableView 的 cell。
BUG 出现的原因:由于使用 SnapKit 或者 Masonry 之类的通过约束来布局控件的话,控件是暂时没有 frame 的,所以我们的 headerView 也没有 frame,设置 tableHeaderView也没有 frame,所以 cellcell 紧贴着 tableHeaderView 显示了。之后,当界面显示的时候 headerView 才会有真正的 frame,所以 cell 被遮住了。
我的解决办法:在 layoutSubVIews 方法里面给设置 tableHeaderView,这个时候所有控件都有 frame 了,也就不会有问题了。
如果大家有什么想法或者其它的解决办法,欢迎提出,谢谢。