侧滑返回上层,界面卡

2016-07-28  本文已影响36人  sfandy

问题显现,见图:

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;
}
上一篇 下一篇

猜你喜欢

热点阅读