状态栏在UIImagepickercontroller的iOS 7和iOS 8中的Camera View上重叠

时间:2014-09-19 06:34:27

标签: ios7 uiimagepickercontroller ios8 statusbar overlapping

我使用UIImagepickercontroller拍摄照片并选择现有照片,当相机视图出现时,相机顶部被白色状态栏覆盖。如何删除状态栏或隐藏状态栏。他们中的许多人说它是ios 7的bug,它已经在ios 7.1中得到修复,但我仍然面临着这个问题。

这是我展示imagepickerController的代码

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = (id)self;
imagePicker.sourceType = (buttonIndex == actionSheet.firstOtherButtonIndex ?  

UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypePhotoLibrary);
[self.viewController presentViewController:imagePicker animated:YES completion:nil]; 

此外,我尝试使用以下代码隐藏状态栏

 - (void)navigationController:(UINavigationController *)navigationController    
  willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
 {
   [[UIApplication sharedApplication] setStatusBarHidden:YES];
   }

 -(BOOL) prefersStatusBarHidden {
   return YES;
 }

这在代表中

 [UIApplication ShareApplication]SetStatusbarHidden:YES];

现在我正在使用ios8,这种行为发生在所有ios版本中。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

实际上问题出在我的rootviewcontroller中我使用UIView创建状态栏并以编程方式设置其横向和纵向约束

- (void)setTopBar {
if(topBar == nil && [[UIApplication sharedApplication] keyWindow] != nil) {
    topBar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
    topBar.backgroundColor = navController.view.backgroundColor;
    topBar.tag = topBarViewTag;
    UIView *containerView = [[UIApplication sharedApplication] keyWindow];
    [containerView addSubview:topBar];
    [containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view(20)]" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil   views:@{@"view" : topBar}]];
    [containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[view]|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil   views:@{@"view" : topBar}]];
    [containerView layoutSubviews];
}

}

所以当我在ViewwillAppear中评论上面的方法时,状态栏没有显示,所以问题出在我的代码上。

如果有人遇到同样的问题,我建议您查看一下RootViewcontroller,它可以导航到所有其他类。