【问题标题】:SpriteKit how to get correct screen sizeSpriteKit如何获得正确的屏幕尺寸
【发布时间】:2015-12-18 06:27:44
【问题描述】:

我试过了

self.frame.size
self.view!.frame.size
UIScreen.mainScreen().bounds.size

它们都不起作用。

如何获得设备的正确屏幕尺寸?

【问题讨论】:

  • 你在哪里检查这些属性? didMoveToView?
  • 是的,在那边。 @0x0141E
  • UIScreen.mainScreen().bounds.size 如何无法为您提供正确的尺寸? self.frame 和 self.view.frame 没有得到正确大小的原因是因为 self.frame 是场景的大小,通常是 600x600,而 self.view.frame 是应用自动布局之前的视图大小,所以也可能是 600x600

标签: ios sprite-kit size screen


【解决方案1】:

您可以使用以下 swift 代码获取屏幕大小。

let displaySize: CGRect = UIScreen.mainScreen().bounds
let displayWidth = displaySize.width
let displayHeight = displaySize.height

【讨论】:

  • 在 Swift 4 中是let displaySize: CGRect UIScreen.main.bounds
【解决方案2】:

你可以使用:

let deviceWidth = UIScreen.mainScreen().bounds.width
let deviceHeight = UIScreen.mainScreen().bounds.height

如果您需要获取比率以便检测他们使用的设备,您可以将以下内容用于纵向模式或将其切换为横向模式。

let maxAspectRatio: CGFloat = deviceHeight / deviceWidth

然后您可以检查设备的比率来确定某些事情。

if maxAspectRatio == (4 / 3) {
    //The ratio of an iphone 4S is 4:3
    print("The user is using an iPhone 4S or iPod 4th Generation.")
} else if maxAspectRatio >= 1.7 && maxAspectRatio <= 1.8 {
    //The ratio of these devices is 16:9
    print("The user is using an iPhone 5, 5S, 5C, 6, 6S, 6 Plus, 6S Plus, or iPod 5th Generation.)
} else {
    print("The user is using an iPad, iPad Mini, iPad Air, iPad Retina, or iPad Pro.")
}

如果你想得到玩家可以看到的正确视图,如设备大小的边界框,可以使用下面的guide

【讨论】:

  • 链接断开! =[
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 2011-08-25
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多