隐藏状态栏时,我遇到了UIViewController主视图定位的问题。我调用隐藏状态栏的调用,但是视图不会转换为占用状态栏留下的空间,即使在尝试以编程方式重新定位帧时也是如此。
以下是视图的屏幕截图,以蓝色边框为界。尽管我付出了最大的努力,但似乎无法将其转化为占据状态栏的空间。但是,我确实注意到,当旋转手机时,它确实占据了整个空间,虽然我不知道在最初进入视图时要调用什么来实现。任何想法如何重新定位视图?
我隐藏状态栏并尝试使用以下代码重新定位视图:
[self setWantsFullScreenLayout:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
CGRect translatedFrame = self.view.frame;
translatedFrame.origin.y -=20;
self.view.frame = translatedFrame;
[self.view.layer setBorderColor:[UIColor blueColor].CGColor];
[self.view.layer setBorderWidth:1.0f];
答案 0 :(得分:1)
您何时何地隐藏状态栏?根据我的经验,如果代码放在viewWillAppear:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
答案 1 :(得分:0)
您需要添加此行以调整视图大小。
[self setWantsFullScreenLayout:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
CGRect translatedFrame = self.view.frame;
translatedFrame.origin.y -=20;
translatedFrame.size.height += 20; // Add 20px
self.view.frame = translatedFrame;
[self.view.layer setBorderColor:[UIColor blueColor].CGColor];
[self.view.layer setBorderWidth:1.0f];
答案 2 :(得分:0)
我将问题缩小到我正在使用的库(View Deck)。我认为,每个人的建议都适用于正常情况,但鉴于View Deck使用视图控制器创建了一个容器,我认为它因此而无法正确呈现。