关于设置 UITableView 的 tableHeaderView为使用了 SnapKit 约束的自定义 view 时出现的 BUG 的处理

本文介绍了一个在SwiftUI中使用自定义HeaderView作为tableView的tableHeaderView时出现的bug,即HeaderView遮挡tableView cell的问题。分析了该bug产生的原因,并提供了解决方法:在layoutSubviews方法中设置tableHeaderView。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做项目的时候发现的这个 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 了,也就不会有问题了。

 如果大家有什么想法或者其它的解决办法,欢迎提出,谢谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值