【问题标题】:xcode 6 is iphone 5 no longer 568 points in height?xcode 6 是 iphone 5 不再是 568 点的高度吗?
【发布时间】:2014-11-04 20:45:32
【问题描述】:

所以我正在尝试更新我的游戏以正确适应 iPhone 6,我现在看到当我在 iPhone 5 模拟器上运行我的游戏时,一切都像 iPhone 4 一样合适。我使用 if 语句来确定设备的高度:

if ((int)[[UIScreen mainScreen] bounds].size.height == 568)
{
    mylabel4.fontSize = 35;
    mylabel4.position = CGPointMake(CGRectGetMidX(self.frame) -145, CGRectGetMidY(self.frame) -130);
} else {
    mylabel4.fontSize = 35;
    mylabel4.position = CGPointMake(CGRectGetMidX(self.frame) -110, CGRectGetMidY(self.frame) - 130);
}

就像我在运行 iPhone 5 模拟器时所说的那样,它运行“else”括号中的代码。它就像 iPhone 5 不再是 568 点的高度。在我下载 Xcode 6 之前,这一切正常吗?这是怎么回事?

【问题讨论】:

  • 您是否尝试记录[[UIScreen mainScreen] bounds].size.height
  • @rebello95 照你说的做了,发现了问题。在我的游戏中,手机是侧放的。以前,iPhone 5 的 size.height 是 568,但现在不是了。现在,size.height = 320 和 size.width = 568,它被切换了。
  • 我的一个应用程序中有完全相同的 if 语句,刚刚检查过,它按预期工作。您是否尝试过 rebello95 的建议并注销 [[UIScreen mainScreen] bounds].size.height?

标签: ios xcode6 iphone-5


【解决方案1】:

iOS8 中的 UIScreen 边界行为已更改。以前它总是会给你纵向屏幕的宽度和高度(在 iPhone 5 上是 320 x 568),但在 iOS8 中,它会给你相对于你所处的任何方向的宽度和高度,即横向你会得到 568 x 320。

如果你想获得纵向的边界(像以前一样),使用:

[UIScreen mainScreen].fixedCoordinateSpace.bounds.size

【讨论】:

    【解决方案2】:

    只需为 iPhone 添加启动图像,模拟器就会显示正确的点。奇怪的错误。

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2011-08-03
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2016-06-07
      • 2015-04-12
      相关资源
      最近更新 更多