ios UI窗口不填充新设备的屏幕?

dl5txlt9  于 5个月前  发布在  iOS
关注(0)|答案(3)|浏览(89)

我正在使用一个旧的Xcode项目,大约有7/8年的历史,我已经将其迁移到Xcode 2.0并支持ARC。(这是在它发布之前)在我工作之前,我已经设法清理了很多错误/问题,我在一个更现代的Xcode IDE中运行它(10.2.1).出于测试目的,我将此代码实现到AppDelegate中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)];
[self.window setBackgroundColor:[UIColor redColor]];

self.window.rootViewController = [UIViewController new];
[self.window makeKeyAndVisible];

return YES;
}

字符串
这让我想到了这个
x1c 0d1x的数据
这是当我在iPhone X,iPhone XR或iPhone XS Max上运行时的结果,它看起来像顶部和底部边距当我调试视图层次结构时,它们也没有被拾取,它只显示红色空间?当我把这段代码扔到一个新项目中时,它工作得很好,填满了所有的空间。UIWindow扩展以支持新设备?
另外,作为一个旁注,我已经确保UIWindow对象没有在其他地方被操纵。

nx7onnlm

nx7onnlm1#

尝试将“启动屏幕界面文件库名称”(UILaunchStoryboardName)添加到您的Info.plist
似乎这个键的存在告诉系统,你本机支持新的设备类型和大小类,所以你的窗口可以填充所有可用的区域。

hs1rzwqc

hs1rzwqc2#

不要弄乱故事板。
UILaunchScreen字典条目添加到您的. plist中。包括Assets.xcassets中定义的背景颜色名称的UIColorName字符串值。

<key>UILaunchScreen</key>
    <dict>
        <key>UIColorName</key>
        <string>launchScreenBackground</string>
    </dict>

字符串

yrdbyhpb

yrdbyhpb3#

还有一个设置专门用于自动生成一个空的启动屏幕:INFOPLIST_KEY_UILaunchScreen_Generation,如果你不想做任何自定义。
https://developer.apple.com/documentation/xcode/build-settings-reference#Launch-Screen-Generation

相关问题