Я пытаюсь сделать некоторую анимацию в iOS swift и не могу заставить гравитацию работать, вот мой код, красное поле остается без движения

Кажется, гравитация ничего не делает, просто не может понять, как заставить ее работать. Вот мой код, красное поле остается без движения. Любая помощь будет оценена импорт UIKit

class ViewController: UIViewController {
    var box : UIView = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()
            addBox(CGRectMake(100, 100, 30, 30))
        createAnimation()


        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }



    func addBox(location: CGRect) {
        let newBox = UIView(frame: location)
        newBox.backgroundColor = UIColor.redColor()

        view.insertSubview(newBox, atIndex: 0)
        box = newBox

    }

    func createAnimation(){
        var animate = UIDynamicAnimator(referenceView: self.view)
        println("animation")
        var gravity = UIGravityBehavior(items: [box])

        gravity.gravityDirection = CGVectorMake(0, 0.6)
        animate.addBehavior(gravity)

    }
}

1 ответ

Решение

Проблема в том, что animate, ваш UIDynamicAnimator, объявлен как локальная переменная. Таким образом, он появляется и снова уходит, не имея времени для оживления. Вместо этого объявите его как переменную экземпляра.

Другие вопросы по тегам