不一致的 tableView contentInset 行为

问题描述

在 tableView 上设置 contentInset 时遇到问题,行为不一致,具体取决于调用时间。我正在使用以下内容

let edgeInsets = UIEdgeInsets(top: 52,left: 0,bottom: 0,right: 0)
tableView.contentInset = edgeInsets
tableView.scrollIndicatorInsets = edgeInsets

最高值很难设置为 52 以进行测试,但实际上将从另一个角度计算。 我这样做是因为我需要将视图固定在表视图控制器的顶部。 我遇到的行为是,如果我在 viewDidLoad 或 viewWillAppear 函数中使用该代码,它会按我的预期工作。 tableView 位于固定视图下方并滚动到其顶部(因此其所有内容都是可见的)。但是,此时固定视图尚未布局,其高度为 0,因此我无法使用它来正确设置内容插入的顶部(因此是硬 52)。

如果我使用 viewDidLayoutSubviews 函数中的上述代码,这是我一直使用的地方,它不会得到相同的结果。插图实际上已设置,但 tableView 也向下滚动了那么多,将其顶行隐藏在固定视图后面。然后我可以向上滚动以查看顶部单元格,然后将 tableView 插入到标题下,但它不应该像那样开始滚动,我不知道为什么会这样。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)