我有一个包含两个页面的垂直分页启用滚动视图,我想在首页显示状态栏,但不在底页显示。
我尝试使用UIScrollViewDelegate方法在视图完成滚动时显示/隐藏状态栏:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
// top page
if (scrollView.contentOffset.y == 0){
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
[self.delegate messagesActive:self];
}
// bottom page
else if (scrollView.contentOffset.y == self.view.frame.size.height){
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}
}
但每次我从底部页面滚动到首页时,状态栏会在我的页面视图上方创建自己的空间,并将视图向下推离屏幕。无论是否有淡入淡出动画,都会发生这种情况。
下一个屏幕触摸会以某种方式强制视图通过滑动动画进行自我修正:
如何让状态栏立即覆盖我的视图而不是扩展其上方的空间?
答案 0 :(得分:1)
// ... in viewDidLoad
self.automaticallyAdjustsScrollViewInsets = NO
此外,从iOS 9开始,UIApplication setStatusBarHidden
已弃用,不应使用。此技术同样适用于动态和动画状态栏:setStatusBarHidden(_:withAnimation:) deprecated in iOS 9