gpt4 book ai didi

Swift Frames 全部不对齐

转载 作者:行者123 更新时间:2023-11-30 10:19:20 25 4
gpt4 key购买 nike

我正在创建一个游戏,当我将菜单场景导航到我的设置场景(使用按钮)时,一切正常。

但是当我转到位置时,在我的设置场景中说一个 UISlider ,定位就全部结束了。我的意思是,如果我尝试将其放置在 self.frame.size.width/2 处,它大约是屏幕上的 3/4,并且远离中间......

我确定我从一个场景进展到另一个场景的方式有问题 - 这是我的代码

func settingsScene() {

println("Settings Scene Pressed!")
var settingscene: Settings = Settings(size: CGSizeMake(768, 1024))
var spriteView: SKView = self.view as SKView!
settingscene.scaleMode = .AspectFill
var trans :SKTransition = SKTransition.doorsOpenHorizontalWithDuration(0.5)
spriteView.presentScene(settingscene, transition: trans)
settingsButton.removeFromSuperview()
button.removeFromSuperview()

}

上面的代码位于我的菜单场景中,当我按下“转到设置按钮”时运行

我确信问题出在 size: CGSizeMake(768,1024)

这是我的 slider 代码 - 我不确定如何定位在场景中间

    sliderDemo.frame = CGRectMake(0.0, 0.0, 100.0, 50.0)
sliderDemo.frame.origin = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
sliderDemo.minimumValue = 0.5
sliderDemo.maximumValue = 5.0
sliderDemo.continuous = true
sliderDemo.tintColor = UIColor.redColor()
sliderDemo.value = 3.0
sliderDemo.addTarget(self, action: "sliderValueDidChange:", forControlEvents: .ValueChanged)
view.addSubview(sliderDemo)

最佳答案

首先,我建议您在初始化 SettingsScene 时不要使用硬编码大小。我建议您使用当前场景的大小。类似这样的事情:

var settingscene: Settings = Settings(size: self.size)

所以不同的场景总是相同的大小。

但是为了解决你的问题。这里的问题是,默认情况下 GameViewController 和 GameScene 的大小不同。因此,您必须更改大小以相互匹配:

为此,请打开 GameViewController 并在 viewDidLoad 方法中的 scene.scaleMode = .AspectFill 行之后添加以下行,以及之前 skView.presentScene(scene) :

    scene.size = skView.bounds.size

这将正确设置场景的大小。

关于Swift Frames 全部不对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com