Как установить метку SK в SKShapeNode из текстового поля - PullRequest
0 голосов
/ 16 января 2019

У меня есть контроллер представления со встроенным SKView, который называется WheelView. В SKView у меня есть колесо с 6 клиньями и метками.

У меня есть несколько текстовых полей, и я хотел бы обновить метки в колесе по мере обновления текстовых полей в родительском контроллере представления.

Как заставить ярлыки обновляться при вводе текста в текстовое поле?

Соответствующий SKShapeNode:

    class Wheel: SKShapeNode {
    let size: CGFloat = 1024
    let colors: [UIColor]

    init(colors: [UIColor]) {
        self.colors = colors
        super.init()


        let wedges = colors.count
        let angle = 2 * CGFloat.pi / CGFloat(wedges)

        for start in 0..<wedges {
            let label = SKLabelNode()
            label.fontSize *= size / 256
            switch start {
            case 1, 3, 5: label.text = //text from textfield
            default     : label.text = //text from textfield
            }
            let wedge = Wedge(size: size, angle: angle, label: label)
            wedge.zRotation = CGFloat(start) * angle
            wedge.fillColor = colors[start]
            wedge.name = String(start)
            addChild(wedge)


            // addChild(innercircle)
            // addChild(circlebutton)
            // addChild(outerbutton)
        }

        self.physicsBody = SKPhysicsBody(circleOfRadius: size,
                                         center: centerFrame(self.frame))
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Соответствующий код в родительском контроллере представления:

 @IBOutlet weak var input1: UITextField!

/....
code
..../
     func textFieldShouldReturn(_ input1: UITextField) -> Bool {

        self.view.endEditing(true)
        return true
    }
...