UIViewController的automaticallyAdjustsScrollViewInsets屬性被棄用了,系統推薦我們使用UIScrollView的contentInsetAdjustmentBehavior屬性替代之。關于這個屬性,系統提供了四種行為模式:
UIScrollViewContentInsetAdjustmentAutomatic
UIScrollViewContentInsetAdjustmentScrollableAxes
UIScrollViewContentInsetAdjustmentNever
UIScrollViewContentInsetAdjustmentAlways
contentInsetAdjustmentBehavior屬性的這四個值:
1、首先是UIScrollViewContentInsetAdjustmentNever,如名所示:就算你的ScrollView超出了safeAreaInsets,系統不會對你的scrollView.adjustedContentInset做任何事情,即不作任何調整;
2、UIScrollViewContentInsetAdjustmentAlways: 只要超了安全區(qū),就調整相應的超出值,調整的最大值不會超過安全區(qū)相應EdgeInsets方向的最大值,如剛剛上述第2點;
3、UIScrollViewContentInsetAdjustmentScrollableAxes:系統會根據ScrollView的滾動方向來進行判斷,假設我只是一個橫向滾動的ScrollView,那即便我的布局起點和高度值超過了self.view的安全區(qū),那么系統也不會調整
4、scrollView.adjustedContentInset對應的top與bottom方向值,只可垂直方向滾動同理,直接設置scrollView.scrollEnabled = NO也同理;
UIScrollViewContentInsetAdjustmentAutomatic:系統默認值。文檔上是這樣說的:它與UIScrollViewContentInsetAdjustmentScrollableAxes行為相似,但是為了兼容以前①這種情況,即使scrollView是不可滾動,也會根據safeAreaInsets超出范圍進行調整。