我正试图在我的场景左上角添加一个SKLabelNode。目前,我正在使用"300“的值来实现这一目标。
func addMoneyLabel() {
        let moneyLabel = SKLabelNode(fontNamed:"Copperplate")
        moneyLabel.fontSize = 25
        print("CGRectGetMidX(self.frame),", CGRectGetMidX(self.frame))
        print("CGRectGetMinX(self.frame),", CGRectGetMinX(self.frame))
        moneyLabel.position = CGPoint(
            x:300,
            y:CGRectGetMaxY(self.frame)
        )
        moneyLabel.text = "$500"
        moneyLabel.verticalAlignmentMode = SKLabelVerticalAlignmentMode.Top
        moneyLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Left
        self.addChild(moneyLabel)
    }这产生的图像如下所示:

为什么"0“或CGRectGetMinX(self.frame)不是左上角位置的正确值?
发布于 2016-08-21 17:24:09
因为场景大小不一定与视图的大小相同。默认情况下,场景大小为1024x768。正如我所看到的,您使用的是iPhone 6s+,与默认场景的大小相比,它具有不同的比例和不同的维度。
要调试这一点,可以放置一个断点,或者只打印scene.size和scene.view.size.。
如果在视图控制器中设置此设置,则可以将场景设置为视图大小相同的视图:
scene.size = view.bounds.size现在,当您将x位置设置为0(并将y设置为CGRectGetMaxY)时,标签将放置在左上角。
https://stackoverflow.com/questions/39066779
复制相似问题