首页 > 移动平台 > 详细

iOS返回原页面scrollView偏差

时间:2019-06-24 14:16:38      阅读:137      评论:0      收藏:0      [点我收藏+]

第一个页面技术分享图片
进入一个横屏页面技术分享图片
返回之后顶部就成这样了,一松手就变成这样技术分享图片
打印前后,frame 、contentOffset、contentSize、contentInset的值都挺正常的,只有adjustedContentInset的值,首次进入页面的时候是{64, 0, 0, 0},从横屏页面回来之后,就变成了{32, 0, 0, 0}。
尝试了在scrollViewDidEndDecelerating直接修改contentOffset,但是效果不好看,单纯修改scrollView的contentInsetAdjustmentBehavior和self.view的automaticallyAdjustsScrollViewContentInset以及当前导航控制器的的automaticallyAdjustsScrollViewInsets均无用。
无法找到原因,最后解决方案为:由于从第二个页面返回之后,必须调用viewDidAppear,因此在这个方法中增加修改contentInset的代码,强制修改内边距
代码如下:
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
if (@available(iOS 11.0, *)) {
if ([NSStringFromUIEdgeInsets(self.scrollView.adjustedContentInset ) isEqualToString:NSStringFromUIEdgeInsets(UIEdgeInsetsMake(32, 0, 0, 0))] ) {
self.scrollView.contentInset = UIEdgeInsetsMake(32, 0, 0, 0 );
}
} else {
// Fallback on earlier versions
}
}

iOS返回原页面scrollView偏差

原文:https://www.cnblogs.com/xiao-xiao-/p/11076660.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!