TableView ContentInset和ContentOffset

时间:2016-08-04 07:24:22

标签: ios uitableview contentoffset

我尝试创建一个有弹性的表格视图标题,我在网上发布了这个代码:

label:before

我在理解这段代码时遇到了一些麻烦。

基本上它正在做的是(假设屏幕的高度为0到500,override func viewDidLoad() { tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0) tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight) updateHeaderView() } ):

1)首先在kTableHeaderHeight = 200属性中向tableView移动填充,然后在kTableHeaderHeight的顶部添加填充(此移动相对于tableView的框架) )。那么tableView现在是否存在于-200到500之间?

2)然后它将其边界向上移动contentInset。那么-kTableHeaderHeight只是让它在-200到500区域可以滚动吗?那么为什么我们在这种情况下使用contentOffset的contentOffset?

1 个答案:

答案 0 :(得分:1)

1)不,如果插入是正数,那么它会使表视图区域变小,如200,500

2)contentOffset是tableview的状态。因此,当您将偏移设置为-200时,无论内容插入如何,它都会将内容零点从表视图零点移动到200。基本上它将当前表视图内容放在应该关于插入的位置

那么代码所做的就是为自定义标头保留200point位置,它永远不会与表视图单元格内容重叠(如表格视图API标题或页脚所做)