侧滑返回上层,界面卡

问题显现,见图:

bug02.png

原因详解:

1.a界面隐藏了状态栏,b界面显示状态栏,左滑动,返回到a界面,此时观察发现滑动时,b界面整体上移了20px

解决方案:

定义个变量

 @property (nonatomic, assign) BOOL isViewDidAppear;


- (void)viewWillAppear:(BOOL)animated{
 self.isViewDidAppear = NO;
}

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];    
self.isViewDidAppear = NO;
}

界面完全显示时,手动调用prefersStatusBarHidden方法,且强制更新隐藏状态栏状态
- (void)viewDidAppear:(BOOL)animated {
   [super viewDidAppear:animated];
   self.isViewDidAppear = YES;
   [self prefersStatusBarHidden];
   if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
    [self setNeedsStatusBarAppearanceUpdate];
 }
}

- (BOOL)prefersStatusBarHidden {
   return self.isViewDidAppear;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容