【问题标题】:Transparent status bar for OS-supplied view controllers操作系统提供的视图控制器的透明状态栏
【发布时间】:2014-12-08 05:32:33
【问题描述】:

我的应用允许用户导入视频并执行一些其他操作,例如发送电子邮件。当我调用标准代码来呈现这些视图控制器(下面的示例)时,结果是可滚动元素出现在状态栏下方,这很可怕。我自己的视图控制器不会受到这个故障的影响。该问题似乎出现在 iOS 7 和 8 中。

我看到了许多相关的问题,但其中大多数都涉及处理您自己的视图控制器中的状态栏,而我已经这样做了。我的问题是关于处理我从操作系统获得的视图控制器。

知道我们可能会做什么(例如在故事板中)导致这种情况吗?我是否忘记或错过了明显的步骤?这是非常丑陋和分散注意力的,修复会很棒。我在任何其他应用程序中都没有看到这一点。

UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

// Displays saved movies from the Camera Roll album.
mediaUI.mediaTypes = @[(__bridge NSString *)kUTTypeMovie];

mediaUI.allowsEditing = YES;

mediaUI.delegate = self; //with or without this, the glitch appears

[self presentViewController:mediaUI animated:YES completion:nil];

它是这样的:

【问题讨论】:

标签: ios uiviewcontroller uiimagepickercontroller statusbar


【解决方案1】:

我能找到的唯一解决方案是删除状态栏。这可能通过 davidisdk 对this question 的回答来实现,但我通过继承 UIImagePicker(和其他一些类)来做到这一点,如下所示:

@interface NoStatusBarImagePickerController : UIImagePickerController
@end

@implementation NoStatusBarImagePickerController
- (BOOL)prefersStatusBarHidden {
    return YES;
}
- (UIViewController *)childViewControllerForStatusBarHidden {
    return nil;
}
@end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2013-09-24
    相关资源
    最近更新 更多