美文网首页iOS实践iOS DeveloperUI 搭建
[iOS]contentOffset与contentInset的

[iOS]contentOffset与contentInset的

作者: Paxton_ | 来源:发表于2017-12-29 15:39 被阅读264次

首先先简单介绍一下这两个属性:

  • contentOffset:scrollView顶点相对于contentView的偏移位置。

    contentOffset图示
  • contentInset:scrollview的contentview的顶点相对于scrollview的位置。

    contentInset图示

接下来进入正题,探讨contentOffset与contentInset的相互影响:

contentOffset对contentInset的影响:

设置
tableView.contentOffset = CGPoint(x: 0, y: 200)
并且在加载完成时打印
print("tableView.contentOffset = ",tableView.contentOffset)
print("tableView.contentInset = ",tableView.contentInset)

打印结果:
tableView.contentOffset =  (0.0, 200.0)
tableView.contentInset =  UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)

设置
tableView.contentOffset = CGPoint(x: 0, y: -200)

打印结果:
tableView.contentOffset =  (0.0, 0.0)
tableView.contentInset =  UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)

contentOffset的设置不会对contentInset造成影响。

contentInset对contentOffset的影响:

设置
tableView.contentInset = UIEdgeInsetsMake(10, 20, 30, 40)
并且在加载完成时打印
print("tableView.contentOffset = ",tableView.contentOffset)
print("tableView.contentInset = ",tableView.contentInset)

打印结果:
tableView.contentOffset =  (-20.0, -10.0)
tableView.contentInset =  UIEdgeInsets(top: 10.0, left: 20.0, bottom: 30.0, right: 40.0)

contentInset的设置改变了contentView相对于scrollView的内边距,因此对contentOffset造成了影响。

总结

  • contentOffset的设置不会对contentInset造成影响。
  • contentInset的设置对contentOffset造成影响。
contentOffset的范围:
- UIEdgeInset.left ≤ x ≤ UIEdgeInset.right + scrollView.contentSize.x - scrollView.width
- UIEdgeInset.top ≤ y ≤ UIEdgeInset.bottom + scrollView.contentSize.y - scrollView.heigth

相关文章

网友评论

    本文标题:[iOS]contentOffset与contentInset的

    本文链接:https://www.haomeiwen.com/subject/bbpigxtx.html