TableView ContentInset 和 ContentOffset
TableView ContentInset and ContentOffset
我试图创建一个可伸缩的 table 视图 header 我在 post 网上看到了这段代码:
override func viewDidLoad() {
tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0)
tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight)
updateHeaderView()
}
我在理解这段代码时遇到了一些困难。
所以基本上它正在做的是(假设屏幕的高度是 0 到 500 并且 kTableHeaderHeight = 200
):
1) 首先在 tableView
的顶部添加填充,方法是在 contentInset
属性 中将其向上移动 kTableHeaderHeight
(此移动是尊重table视图的框架)。那么现在 tableView 是否存在于 -200 到 500 之间?
2) 然后它将边界向上移动 -kTableHeaderHeight
。那么 contentOffset
只是让它在 -200 到 500 区域滚动吗?这就是我们在这种情况下使用 -kTableHeaderHeight
的 contentOffset 的原因吗?
1) 不,如果 inset 为正则它会使 table 视图区域变小,例如 200,500
2) contentOffset 是 tableview 的状态。因此,当您将偏移量设置为 -200 时,它会将内容零点从 table 视图零点移动到 200,而不管内容插入。基本上它将当前 table 视图内容放置在关于插图
应该放置的位置
所以该代码所做的是为自定义页眉保留 200 点位置,永远不会与 table 视图单元格内容重叠(正如 table 查看 API 页眉或页脚所做的那样)
我试图创建一个可伸缩的 table 视图 header 我在 post 网上看到了这段代码:
override func viewDidLoad() {
tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0)
tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight)
updateHeaderView()
}
我在理解这段代码时遇到了一些困难。
所以基本上它正在做的是(假设屏幕的高度是 0 到 500 并且 kTableHeaderHeight = 200
):
1) 首先在 tableView
的顶部添加填充,方法是在 contentInset
属性 中将其向上移动 kTableHeaderHeight
(此移动是尊重table视图的框架)。那么现在 tableView 是否存在于 -200 到 500 之间?
2) 然后它将边界向上移动 -kTableHeaderHeight
。那么 contentOffset
只是让它在 -200 到 500 区域滚动吗?这就是我们在这种情况下使用 -kTableHeaderHeight
的 contentOffset 的原因吗?
1) 不,如果 inset 为正则它会使 table 视图区域变小,例如 200,500
2) contentOffset 是 tableview 的状态。因此,当您将偏移量设置为 -200 时,它会将内容零点从 table 视图零点移动到 200,而不管内容插入。基本上它将当前 table 视图内容放置在关于插图
应该放置的位置所以该代码所做的是为自定义页眉保留 200 点位置,永远不会与 table 视图单元格内容重叠(正如 table 查看 API 页眉或页脚所做的那样)