1

私のメインアプリでは、3D タッチを使用して弾丸の発射を有効にしようとしていますが、結果は非常に一貫していないようで、常に書き込み結果が得られるとは限りませんでした。また、このコードを使用すると iPhone 6S がクラッシュしました。これはテストに使用したコードです。

 for touch in touches {
        let location = touch.locationInNode(self)

        var force =  touch.force * 10
        var maxForce = touch.maximumPossibleForce

        print ("The force is")
        print (maxForce*4)
        print (force*10000000)

        if force != 0{


            myLabel.text = "Force"
            myLabel.fontSize = 45
            myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
            self.addChild(myLabel)
            myLabel.zPosition = 100000


        }

        else {

           myLabel.removeFromParent()
        }
4

1 に答える 1

0

親にラベルを複数回追加するため、クラッシュしていると推測します(あなたの if 条件は壊れています。どの関数を呼び出しても、(touchesBegantouchesMovedtouchesEnded)これらの条件の 1 つだけが常に true になります。 in touchesBeganand touchesMoved、あなたのforce は常に > 0 になりtouchEnded、あなたの force は 0 になるはずです (このコードがあなたのものであると仮定しますtouchMoved) 代わりに、viewDidLoad コードにラベルを追加し、.hidden フィールドを使用してラベルを表示/非表示にします(非表示にするにはオンにしてくださいtouchesEnded

于 2016-03-28T04:45:02.040 に答える