导航视图内Push进来的以ScrollView为主View的视图,会默认向下偏移。
当项目不需要自动为下移时,可设置:
self.automaticallyAdjustsScrollViewInsets = NO;// 自动滚动调整,默认为YES
但是iOS11以后,会突然发现,也?明明设置了automaticallyAdjustsScrollViewInsets,为什么还是莫名其妙偏移了呢?
这是因为iOS 11为UIScrollView 添加了新的属性UIScrollViewContentInsetAdjustmentBehavior 这个枚举
image.png
automatic 和scrollableAxes一样,scrollView会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.
scrollableAxes 自动计算内边距.
never不计算内边距
always 根据safeAreaInsets 计算内边距
很显然,我们这里要设置为UIScrollViewContentInsetAdjustmentNever从不自动调整
if (@available(iOS 11.0, *)) {
Scrollview.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
// Fallback on earlier versions
}
网友评论