0%

记一次TableView诡异行为

这个问题相当离谱,一度让我使出隐藏大法才规避掉…

// xcode 13 ios 15 跑起来这个页面tableview顶部有35空白
// xcode 12 ios 14 没问题,配合问题编译只要改row默认返回0即可,或者不改也行
// 但是模拟数据就不会
// 测试发现 cell 如果一开始就出现,就不会有问题
// 所以引入,一开始就显示1个cell,并隐藏,api返回后,使用真实数据

看看把自己都逼到什么程度了,当然中间也设置过各种看来的参数,不过都没用

// 试过这个
public override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
print(tableView.safeAreaInsets,tableView.adjustedContentInset)
tableView.contentInsetAdjustmentBehavior = .never
//tableView.contentInset = UIEdgeInsets(top: -35, left: 0, bottom: 0, right: 0) // print(thisUISBTV.adjustedContentInset)
}
// 还有这个
tableView.contentInsetAdjustmentBehavior = .never
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0
}

最后基本上就放弃了,采用隐藏大法了,隔天又不甘心网上搜索了一番,试了下这个,竟然好转了

tableView.tableHeaderView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 0.0, height: Double.leastNormalMagnitude))
// 而且这样都不行,必须是设置如上的高度,就问你服不服
tableView.tableHeaderView = UIView.init(frame: CGRect.zero)