我试图创建一个可伸缩的表格视图标题,我在网上的一篇文章中看到了这段代码:
override func viewDidLoad() {
tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0)
tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight)
updateHeaderView()
}
我在理解这段代码时遇到了一些问题。
所以本质上它所做的是(假设屏幕的高度和kTableHeaderHeight = 200
是0到500 ):
1)它首先在tableView
的顶部添加填充,方法是在contentInset
属性中通过kTableHeaderHeight
将其上移(此移动是相对于tableView的框架进行的)。那么现在tableView是否存在于-200到500之间?
2)然后它将其边界上移-kTableHeaderHeight
。那么,contentOffset
只是让它可以在-200到500范围内滚动吗?这就是我们在这种情况下使用contentOffset by -kTableHeaderHeight
的原因吗?
发布于 2016-08-07 17:01:37
1)否,如果inset为正数,则会使表格视图区域变小,如200,500
2) contentOffset是tableview的状态。因此,当您将偏移设置为-200时,它会将内容零点从表视图零点移动到200,而不考虑内容插入。基本上,它将当前表视图内容放到它应该插入的位置
因此,代码所做是为自定义页眉保留200磅的位置,它永远不会与表视图单元格的内容重叠(就像表视图API页眉或页脚那样)
https://stackoverflow.com/questions/38760953
复制相似问题