UIDynamicAnimator - won't work with UIView but will with Self.View?
It appears from the exception that self.gameOverFalling
does not descend from finalScoreView
in your view hierarchy. See the quote from UIDynamicAnimator class reference:
To animate views, create an animator with the initWithReferenceView: method. The coordinate system of the reference view serves as the coordinate system for the animator’s behaviors and items. Each dynamic item you associate with this sort of animator must be a UIView object and must descend from the reference view.
I solved this by adding to subview before adding any behaviour.
addSubview(square)
var gravity = UIGravityBehavior(items: [square])
gravity.magnitude = gravitySpeed
animator.addBehavior(gravity)