SKLabelNode显示在iPhone模拟上,但不显示在iPad上

时间:2018-07-11 12:16:01

标签: ios swift position sklabelnode

我有这段代码可以在屏幕的左上角放置我的游戏的得分标签。

    scoreLabel = SKLabelNode(text:"bats avoided: \(score)")
    scoreLabel.fontSize = 50
    scoreLabel.horizontalAlignmentMode = .left

    scoreLabel.position = CGPoint (x:10 - (frame.size.width/2), y:   (frame.size.height/2) - 50)

但标签仅出现在iPhone模拟器上,而不出现在iPad上。

如果我在运行时打印标签的一部分,则表明位置为x:-365 y:617,屏幕宽度/ 2为375,屏幕高度/ 2为667,因此肯定应该在该位置。

给什么?

1 个答案:

答案 0 :(得分:1)

iOS中的坐标系将“左上角”表示为0,0。也就是说,随着x的增加,您将向右移动,而随着y的增加,您将向下移动。

您正在为x设置10 - (frame.size.width/2)的值。假设您的frame.size.width是300,例如,它等于-140。还记得我怎么说“左上”表示为0,0吗?好吧,如果您的x坐标为-140,则该元素将比0,0更左,然后离开屏幕。

要将某物放置在左上角,请插入10点。您只需将其位置设置为CGPoint(x: 10, y: 10)

值得注意的是,在处理精灵时,就像您的情况一样,Y0实际上是屏幕的底部,而不是屏幕的顶部。这有点令人讨厌,但要牢记。