相关疑难解决方法(0)

UIScreen MainScreen Bounds返回错误的大小

因此,我使用最新版本的XCode创建了一个新项目,并尝试记录我的应用程序的屏幕大小(以确定UI的设备类型).我从iPhone 5运行了以下代码:

NSLog(@"%f", [[UIScreen mainScreen] bounds].size.height);
Run Code Online (Sandbox Code Playgroud)

这返回了480,这是旧iPhone系列的屏幕尺寸.我在模拟器中试过,发生了同样的事情.我必须在项目中启用一些属性来识别屏幕大小吗?

这仅适用于5个以上的设备; 如果我在iPad上运行游戏,它会识别1024屏幕尺寸.

我知道这个代码在过去有效.我使用完全相同的方法做了一段时间的游戏,它没有检测屏幕大小的问题,但这是在XCode 4.x中构建的.

附加信息:

我正在使用自定义视图控制器,我在App Delegate中创建了以下代码:

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

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    if([Global getDevice] == 1)
    {
        //iPhone 5+
        self.window.rootViewController = [[FivePlus alloc] initWithNibName:nil bundle:nil];

    }
    else if([Global getDevice] == 2)
    {
        //iPhone 4S-
        self.window.rootViewController = [[FourSMinus alloc] initWithNibName:nil bundle:nil];
    }
    else
    {
        //iPad
        self.window.rootViewController = [[iPad alloc] initWithNibName:nil bundle:nil];
    }

    [[self window] makeKeyAndVisible];

    // Override point for customization after application launch.
    return …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c frame ios uiscreen

40
推荐指数
1
解决办法
3万
查看次数

标签 统计

frame ×1

ios ×1

iphone ×1

objective-c ×1

uiscreen ×1