iOS实践iOS DeveloperUI 搭建

[iOS]contentOffset与contentInset的

2017-12-29  本文已影响264人  Paxton_

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

接下来进入正题,探讨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的范围:
- UIEdgeInset.left ≤ x ≤ UIEdgeInset.right + scrollView.contentSize.x - scrollView.width
- UIEdgeInset.top ≤ y ≤ UIEdgeInset.bottom + scrollView.contentSize.y - scrollView.heigth
上一篇 下一篇

猜你喜欢

热点阅读