状态栏扩展滚动视图并将内容推离屏幕
status bar expanding scrollview and pushing content off screen
我有一个包含两页的垂直分页滚动视图,我想在首页显示状态栏,而不是在底部页面。
我尝试在视图完成滚动时使用 UIScrollViewDelegate 方法 show/hide 状态栏:
- (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];
}
}
但每次我从底部页面滚动到顶部页面时,状态栏都会在我的页面视图上方创建自己的 space,并将视图向下推到屏幕之外。无论有没有淡入淡出动画,都会发生这种情况。
下一次屏幕触摸会以某种方式强制视图通过滑动动画自行更正:
如何让状态栏立即覆盖我的视图,而不是在其上方展开 space?
// ... in viewDidLoad
self.automaticallyAdjustsScrollViewInsets = NO
此外,从 iOS 9 开始,UIApplication setStatusBarHidden
已弃用,不应使用。此技术同样适用于动态和动画状态栏:
我有一个包含两页的垂直分页滚动视图,我想在首页显示状态栏,而不是在底部页面。
我尝试在视图完成滚动时使用 UIScrollViewDelegate 方法 show/hide 状态栏:
- (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];
}
}
但每次我从底部页面滚动到顶部页面时,状态栏都会在我的页面视图上方创建自己的 space,并将视图向下推到屏幕之外。无论有没有淡入淡出动画,都会发生这种情况。
下一次屏幕触摸会以某种方式强制视图通过滑动动画自行更正:
如何让状态栏立即覆盖我的视图,而不是在其上方展开 space?
// ... in viewDidLoad
self.automaticallyAdjustsScrollViewInsets = NO
此外,从 iOS 9 开始,UIApplication setStatusBarHidden
已弃用,不应使用。此技术同样适用于动态和动画状态栏: