首先先簡單介紹一下這兩個屬性:
-
contentOffset:
scrollView頂點相對于contentView的偏移位置喂走。
contentOffset圖示 -
contentInset:
scrollview的contentview的頂點相對于scrollview的位置。
contentInset圖示
接下來進(jìn)入正題皇耗,探討contentOffset與contentInset的相互影響:
contentOffset對contentInset的影響:
設(shè)置
tableView.contentOffset = CGPoint(x: 0, y: 200)
并且在加載完成時打印
print("tableView.contentOffset = ",tableView.contentOffset)
print("tableView.contentInset = ",tableView.contentInset)
打印結(jié)果:
tableView.contentOffset = (0.0, 200.0)
tableView.contentInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)
設(shè)置
tableView.contentOffset = CGPoint(x: 0, y: -200)
打印結(jié)果:
tableView.contentOffset = (0.0, 0.0)
tableView.contentInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)
contentOffset的設(shè)置不會對contentInset造成影響乌庶。
contentInset對contentOffset的影響:
設(shè)置
tableView.contentInset = UIEdgeInsetsMake(10, 20, 30, 40)
并且在加載完成時打印
print("tableView.contentOffset = ",tableView.contentOffset)
print("tableView.contentInset = ",tableView.contentInset)
打印結(jié)果:
tableView.contentOffset = (-20.0, -10.0)
tableView.contentInset = UIEdgeInsets(top: 10.0, left: 20.0, bottom: 30.0, right: 40.0)
contentInset的設(shè)置改變了contentView相對于scrollView的內(nèi)邊距羊赵,因此對contentOffset造成了影響漏麦。
總結(jié)
- contentOffset的設(shè)置
不會
對contentInset造成影響骗灶。 - contentInset的設(shè)置
會
對contentOffset造成影響游添。
contentOffset的范圍:
- UIEdgeInset.left ≤ x ≤ UIEdgeInset.right + scrollView.contentSize.width- scrollView.width
- UIEdgeInset.top ≤ y ≤ UIEdgeInset.bottom + scrollView.contentSize.heigth - scrollView.heigth