UITableView ContentInset 和 ContentOffset

Posted

技术标签:

【中文标题】UITableView ContentInset 和 ContentOffset【英文标题】:UITableView ContentInset and ContentOffset 【发布时间】:2019-01-17 11:50:27 【问题描述】:

我在使用 contentInset 属性时遇到问题。我有一个UITableView,具有动态单元格大小(自动布局)。我正在设置contentInset 属性以在内容顶部上方留出一些空间。但我得到以下结果:

内容为蓝色,内容插图为紫色。当表格视图第一次出现时,它处于左侧的情况。我可以滚动到正确的情况,这是有效的,但我希望表格视图直接出现在右图中——我认为这是默认行为。

我怎样才能做到这一点?

【问题讨论】:

这有帮助吗? ***.com/questions/22020943/… @RakeshaShastri 我已经看到并尝试过,但没有成功 【参考方案1】:

不确定这是否是最好的方法,但我通过添加来修复它:

tableView.contentOffset.y = -70

行后:

tableView.contentInset = UIEdgeInsets(top: 70, left: 0, bottom: 50, right: 0)

【讨论】:

【参考方案2】:

您可以在视图加载时以编程方式滚动。

tableView.setContentOffset(CGPoint(x: 0, y: -70), animated: false)

【讨论】:

这就是我最终做的,虽然不是很漂亮。我认为滚动视图会自动调整,以便直接滚动到“顶部”【参考方案3】:

这是可以从情节提要中轻松修复的方法:

表格视图 > 大小检查器 > 内容插入:从不

【讨论】:

我没有使用 Storyboard,但我尝试使用 scrollView.contentInsetAdjustmentBehavior,但没有帮助【参考方案4】:

你提供一个 UIEdgeInset 对象,

UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)

top 属性显示从内容顶部到区域顶部边框的距离。

【讨论】:

是的,这就是我正在做的事情

以上是关于UITableView ContentInset 和 ContentOffset的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 在 contentInset 之后不滚动

UITableView 调整 contentinset 直到第一次滚动

iOS 7 中 UITableView 的 contentInset 规则?

通过 contentInset 属性添加边距在 iPad 上居中 UITableView?

更改 UITableView 的 contentInset 而不更改其 contentOffset?

UITableView 增加 contentInset 底部不滚动