【问题标题】:No NIBs, UIWindow Not Filling Screen, iOS 7没有笔尖,UIWindow 没有填满屏幕,iOS 7
【发布时间】:2015-02-04 20:56:47
【问题描述】:

我完全避免使用 NIB。我在 iOS 7.1 上遇到问题,但在 iOS 8.x 上没有。

iOS 7 与 iOS 8

UIResponder <UIApplicationDelegate> 中的代码如下所示

- (void) setupViewController {
    CGRect frame = UIScreen.mainScreen.bounds;
    self.window = [[UIWindow alloc] initWithFrame:frame];
    self.window.backgroundColor = UIColor.whiteColor; // viewController's view is green
    ViewController *viewController = [[ViewController alloc] init];
    UIView *view = [[UIView alloc] initWithFrame:self.window.bounds];
    viewController.view = view;
    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self setupViewController];
    return YES;
}

我也尝试了一些处理 iOS 8 的方法,但即使将 UIWindow frame 设置为 5000, 5000 也会产生相同的结果。

[我已经看到了一些相关的问题并尝试了这些建议,但无济于事,包括如果是 iOS 8 则翻转边界等。]

【问题讨论】:

    标签: ios objective-c iphone ios7


    【解决方案1】:

    问题是您没有 4 英寸屏幕的启动图像,因此 iPhone 5s 将此应用程序视为 3.5 英寸应用程序 (iPhone 4) 并对其进行信箱处理。

    【讨论】:

    • 启动图像在 iOS 7 和 iOS 8 上的工作方式不同,这就是问题所在。你必须满足两者的规则。
    • 因此,正如您所建议的,只需将启动图像源切换到“资产目录”即可解决问题。所有启动图像都是空白的,但它仍然有效。谢谢你所做的一切,伙计,这是一个很大的帮助!
    • 将旧项目迁移到 iOS 12 时出现同样的问题。无法全屏显示应用程序窗口。只需向 info.plist 添加一个空的“启动屏幕界面文件基本名称”即可解决问题。谢谢!
    • @Raf 不错!很高兴你找到了这个问答。
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多