我发现在设置了
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]
在 viewDidLoad
中,如果我想将一个图像和顶部对齐,那么我需要将它的位置设置为 .y = -20;
有没有办法使得图像的 y 坐标的 顶部位置 等于 0?或者在隐藏状态栏后,它注定要是 -20 吗?
谢谢阅读。
我曾经遇到过类似的问题,这段代码解决了我的问题:
[viewController.view setFrame: [viewController.view bounds]];
[self.view setFrame: [[UIScreen mainScreen] bounds]];
单击内部框中的水平和垂直线,使它们变成实心红线。动画预览显示文本视图的内部尺寸将随窗口而增长和缩小。
请检查你nib文件中根视图的大小是否正确设置为480x320。一些模板项目会将其设置为460x320以适应状态栏。如果你加载了一个占据整个屏幕并且状态栏被隐藏的视图,它应该可以正常工作,你不需要进行任何特殊处理。
以下解决方案在以下情况下都能正常工作:
- (BOOL)prefersStatusBarHidden // For iOS 7.0 or above.
{
return _isStatusBarHidden;
}
// Call this method to show / hide the status bar and resize the view.
- (void)setStatusBarHidden:(BOOL)isStatusBarHidden
{
_isStatusBarHidden = isStatusBarHidden;
// For iOS 7.0 or above...
if([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
{
// Update status bar visibility.
[self setNeedsStatusBarAppearanceUpdate]; // Tell the view controller that the return value of -prefersStatusBarHidden has changed.
}
// Otherwise...
else
{
// Show or hide status bar.
[[UIApplication sharedApplication] setStatusBarHidden:_isStatusBarHidden withAnimation:UIStatusBarAnimationNone];
// Resize view.
self.view.frame = [UIScreen mainScreen].applicationFrame;
}
}
在这里,BOOL _isStatusBarHidden;
是视图控制器类的成员变量。
备注:
[self.view setFrame: [self.view bounds]];
[self.theScroller setFrame: [self.view bounds]];
"theScroller" 是我的 ScrollView 的名称。
"