gpt4 book ai didi

ios - 使用 referenceView 延迟实例化 UIDynamicAnimator - Swift

转载 作者:可可西里 更新时间:2023-11-01 01:06:52 24 4
gpt4 key购买 nike

我正在尝试在我的代码中延迟实例化一个 UIDynamicAnimator。我想用 UIView 将其初始化为我拥有的 IBOutlet。

class ViewController: UIViewController {

@IBOutlet var gameView : UIView

@lazy var animator = UIDynamicAnimator(referenceView: gameView)
...

我假设这不起作用,因为 UIView 尚未创建,因为 animator 属性会返回一个错误,指出找不到游戏 View 。

我该如何解决这个问题?

最佳答案

在 session 视频“构建可中断和响应式交互”中,他们正是这样做的。

解决方案是将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 的引用都需要打开它。

在我看来,一个稍微好一点的方法是将它定义为一个隐式解包的可选项。所以它看起来像这样:

class ViewController: UIViewController {
var animator : UIDynamicAnimator!
@IBOutlet var gameView : UIView
override func viewDidLoad() {
super.viewDidLoad()
animator = UIDynamicAnimator(referenceView: gameView)
animator.property = value
...
}
...

关于ios - 使用 referenceView 延迟实例化 UIDynamicAnimator - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com