我正在尝试隐藏我的 NavigationBar 和状态栏(向上滑动动画),但遇到了问题。
当状态栏可见时,在 0 点 (x: 0) 处的每个元素的原点表示在状态栏的正下方。但是,当状态栏被隐藏时,0(x:0)点会更新以容纳新的空间,0(x:0)表示屏幕的绝对顶部。
当我隐藏状态栏并旋转到横向时,视图会自动调整大小,并且所有内容都会转移以使用状态栏的空间,并抛出我的动画:
if (![[UIApplication sharedApplication] isStatusBarHidden]) {
// Change to fullscreen mode
// Hide status bar and navigation bar
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationSlide];
[UIView animateWithDuration:animationDuration animations:^{
navBar.frame = CGRectMake(navBar.frame.origin.x,
-navBar.frame.size.height-20,
navBar.frame.size.width,
navBar.frame.size.height);
} completion:^(BOOL finished) {
[navBar setHidden:TRUE];
}];
} else {
// Change to regular mode
// Show status bar and navigation bar
[navBar setHidden:FALSE];
[[UIApplication sharedApplication] setStatusBarHidden:NO
withAnimation:UIStatusBarAnimationSlide];
[UIView animateWithDuration:animationDuration animations:^{
navBar.frame = CGRectMake(navBar.frame.origin.x,
0,
navBar.frame.size.width,
navBar.frame.size.height);
} completion:^(BOOL finished) {
}];
}
有什么建议么?
编辑:这是旋转重新布局后屏幕的样子:图片