在会议视频“构建可中断和响应式交互”中,他们正是这样做的。
解决方案是定义animator
为 Optional 并在内部初始化viewDidLoad
。
class ViewController: UIViewController {
var animator : UIDynamicAnimator?
@IBOutlet var gameView : UIView
override func viewDidLoad() {
super.viewDidLoad()
animator = UIDynamicAnimator(referenceView: gameView)
animator!.property = value
...
}
...
我有点不喜欢这个,因为未来的引用animator
都需要打开它。
imo 稍微好一点的方法是将其定义为隐式展开的可选项。所以它看起来像这样:
class ViewController: UIViewController {
var animator : UIDynamicAnimator!
@IBOutlet var gameView : UIView
override func viewDidLoad() {
super.viewDidLoad()
animator = UIDynamicAnimator(referenceView: gameView)
animator.property = value
...
}
...