UIDynamics不在Swift中工作

时间:2014-06-09 15:29:40

标签: ios objective-c swift

我正在尝试将Ray Wenderlich的UIDynamics教程转换为快速代码,但我仍然坚持第一部分。

http://www.raywenderlich.com/50197/uikit-dynamics-tutorial

这就是我正在做的事情:

  1. 创建了一个正方形UIView
  2. 在主视图中添加了UIDynamicAnimator
  3. 添加了一个UIGravityBehavior并用方块
  4. 初始化它
  5. 向动画师添加了重力行为
  6. 这一切都编译并运行良好,但方块不动。谁能看到我做错了什么?

    https://github.com/oisinlavery/UIDynamics-Swift

1 个答案:

答案 0 :(得分:4)

您已将动画制作者创建为go方法的局部变量,因此只要该方法完成,它就会消失。它需要是ViewController类上的一个实例变量,以便它可以保留并为广场设置动画:

class ViewController: UIViewController {
    var animator: UIDynamicAnimator?

    @IBAction func go(sender : UIButton) {
        var square = UIView(frame: CGRectMake(100, 100, 100, 100))
        square.backgroundColor = UIColor.blackColor()
        self.view.addSubview(square)

        self.animator = UIDynamicAnimator(referenceView: self.view)
        var grav = UIGravityBehavior(items:[square])

        self.animator!.addBehavior(grav)
    }
}