【问题标题】:TableView ContentInset and ContentOffsetTableView ContentInset 和 ContentOffset
【发布时间】:2016-08-04 07:24:22
【问题描述】:

我试图创建一个可伸缩的表格视图标题,我在网上的帖子上看到了这段代码:

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) 它首先通过在contentInset 属性中将kTableHeaderHeight 向上移动来在tableView 的顶部添加填充(此移动是相对于tableView 的框架)。那么现在tableView是否存在从-200到500?

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

【问题讨论】:

    标签: ios uitableview contentoffset


    【解决方案1】:

    1) 不,如果 inset 是正数,那么它会使表格视图区域更小,比如 200,500

    2) contentOffset 是 tableview 的状态。因此,当您将偏移量设置为 -200 时,它会将内容零点从表格视图零点移动到 200,而不管内容插入。基本上它把当前的表格视图内容放在了它应该在插入的地方

    因此该代码所做的是为自定义标题保留 200 点位置,该位置永远不会与表格视图单元格内容重叠(就像表格视图 API 标题或页脚所做的那样)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 2011-09-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多