gpt4 book ai didi

ios - 从 View 框架内编辑 UILabel

转载 作者:行者123 更新时间:2023-11-30 13:26:18 24 4
gpt4 key购买 nike

我在 ViewController 内部的 Stack View 中有一个 UILabel 和一个 View,其中我有一个GameScene 在同一个 View 中。

'''''''''''''''  <- GameStartViewController
' L '
' ''''''''' ' L = UILabel
' ' V ' ' V = View Frame
' ' ' '
' ' ' '
' ' ' '
' ''''''''' '
' '
'''''''''''''''

我正在尝试更新标签,即 View 内部的分数,但我不断收到

fatal error: unexpectedly found nil while unwrapping an Optional value

即使已连接,我也无法更改颜色、设置文本等...

代码:

GameScene.swift

var gs: GameStartViewController!

override func didMoveToView(view: SKView) {
physicsWorld.contactDelegate = self
self.backgroundColor = UIColor.feelFreeToColor()
gs.scoreLabel.text = "\(score)" // THIS DOES NOT WORK
}

GameStartViewController.swift

@IBOutlet weak var selfView: SKView!
@IBOutlet weak var scoreLabel: UILabel!

override func viewDidLoad() {
super.viewDidLoad()

self.view.backgroundColor = UIColor.feelFreeToColor()
self.initAdMobBanner()

let scene: GameScene = GameScene(size: view.bounds.size)
let skView = selfView
scene.scaleMode = .AspectFill
skView.presentScene(scene)

scoreLabel.layer.addBorder(UIRectEdge.Bottom, color: UIColor.blackColor(), thickness: 3) // THIS WORKS
}

我可以从 View Controller 编辑它,但不能在 View 框架内编辑它。如何从 View 框架内访问它?

最佳答案

您在 View 中的何处设置对父级的引用(在您的情况下为 gs)?

尝试在 ViewController 中设置父引用,如下所示:

override func viewDidLoad() {
super.viewDidLoad()

self.view.backgroundColor = UIColor.feelFreeToColor()
self.initAdMobBanner()

let scene: GameScene = GameScene(size: view.bounds.size)

// Notice!
scene.gs = self

let skView = selfView
scene.scaleMode = .AspectFill
skView.presentScene(scene)

scoreLabel.layer.addBorder(UIRectEdge.Bottom, color: UIColor.blackColor(), thickness: 3) // THIS WORKS
}

关于ios - 从 View 框架内编辑 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154662/

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