我发现在iPhone状态栏上的专辑方向消失了。我的观点使用.frame
属性在状态栏下调整。现在,当状态栏消失时,我想将它们移动得更高。这样做的正确方法是什么?同样在iPad上状态栏不会消失,所以我想要一些通用的方法来处理它。
目前我可以在控制器中重载viewWillTransitionToSize:withTransitionCoordinator:
并在那里调整设置。但我无法确定状态栏是否会在转换后隐藏。
如果重要的话,我会使用.xib
个文件,而不是故事板。
答案 0 :(得分:1)
我有同样的问题。我通过以下
克服了这个问题 Best to use
-(void)viewWillLayoutSubviews()
{
//........
}
编码中的方法。它会自动布局视图。它会根据大小调整大小 视角方向。我在iPhone和iPad上应用了这种方法。它运行得很好。
在此之前你应该遵循以下的事情
1.plist
View controller-based status bar appearance boolean NO
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UIApplication sharedApplication].statusBarHidden=NO;
[application setStatusBarStyle:UIStatusBarStyleLightContent];
[application setStatusBarHidden:NO];
}
在ViewController中
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//For iPAD I set the bounds because it calls this method,Once it returns from previous view controller or background to foreground
self.view.bounds = CGRectMake(0, -20, 1024, 768);
}
-(void)viewWillLayoutSubviews
{
self.view.clipsToBounds = YES;
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenHeight = 0.0;
screenHeight = screenRect.size.width;
CGRect screenFrame = CGRectMake(0, 20, self.view.frame.size.width,screenHeight-20);
CGRect viewFrame1 = [self.view convertRect:self.view.frame toView:nil];
if (!CGRectEqualToRect(screenFrame, viewFrame1))
{
self.view.frame = screenFrame;
self.view.bounds = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
NSLog(@"width is - %f",[[self view] bounds].size.width);
NSLog(@"height is - %f",[[self view] bounds].size.height);
}
}