ios - 来自另一个类的值

标签 ios swift

我在 SKScene 类中创建了一个名为 ForceTouch 的新类。这是 UIView 类型。不确定这样做是否正确,但它似乎已经消除了错误。 我的问题是;我已经在我的 ForceTouch 类中计算了一个值,并希望在我的 SKScene 类中使用它。是否有可能做到这一点? 下面是我的代码的副本:

ForceTouch 类:UIView {

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
    if let touch = touches.first where traitCollection.forceTouchCapability == .Available {

        let relativeForce = touch.force / touch.maximumPossibleForce
        let forceMultiplier: CGFloat = 100
        let playerFlight = CGFloat(relativeForce) * CGFloat(forceMultiplier)
        var playerVelocity = CGPoint.zero
        func flyPlayer() {
            playerVelocity = CGPoint(x: 0, y: playerFlight)
        }

        flyPlayer()

        }
    }
}

我想使用我为 playerVelocity 计算的值,并稍后在代码中使用它:在我的 ForceTouch 类之外。 当我尝试这样做时,我收到错误“使用未解析的标识符-playerVelocity”。 请有人给我一些帮助来解决这个问题吗? 提前致谢!

最佳答案

如果您必须直接从您的 ForceTouch 类中使用 playerVelocity 值,那么您可以这样做,例如:

class ForceTouch: UIView {

    var playerVelocity = CGPoint.zero

    override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
        if let touch = touches.first where traitCollection.forceTouchCapability == .Available {
            let relativeForce = touch.force / touch.maximumPossibleForce
            let forceMultiplier: CGFloat = 100
            let playerFlight = CGFloat(relativeForce) * CGFloat(forceMultiplier)
            func flyPlayer() {
                playerVelocity = CGPoint(x: 0, y: playerFlight)
            }

            flyPlayer()
        }
    }
}

然后在您的 SKScene 类中从 ForceTouch 对象获取它,例如 forceTouch.playerVelocity 其中 forceTouch 是对象您在 SKScene 类中拥有的 ForceTouch

或者如果你需要在一些 Action 之后发送playerVelocity给parrent类你需要使用委托(delegate)机制

关于ios - 来自另一个类的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546012/

相关文章:

ios - 搜索DisplayController 到detailedViewController

iphone - iOS 获取 subview 的旋转

ios - RESTKit 对象 BOOL 属性为 true/false JSON

ios - 在 SearchTextField.swift 中遇到错误

swift - 推送通知未在 iOS 10 中显示

iphone - 如何在 UITableView 的开头插入 UITableViewCell

ios - 当传递到另一个 ViewController 时重置变量

swift - 如何获取 NSPoint 中的整数值以整数而不是小数显示

ios - 在 swift 中为数据创建高级可变参数扩展

ios - Unwind Segue 在 iOS 8 中不起作用