我尝试创建一个有弹性的表格视图标题,我在网上发布了这个代码:
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?
答案 0 :(得分:1)
1)不,如果插入是正数,那么它会使表视图区域变小,如200,500
2)contentOffset是tableview的状态。因此,当您将偏移设置为-200时,无论内容插入如何,它都会将内容零点从表视图零点移动到200。基本上它将当前表视图内容放在应该关于插入的位置
那么代码所做的就是为自定义标头保留200point位置,它永远不会与表视图单元格内容重叠(如表格视图API标题或页脚所做)