【发布时间】:2015-09-13 10:36:09
【问题描述】:
实际上,我在处理 UIViewController 上未包装的可选常量时遇到了一些麻烦。
因为 UI 组件仅在 viewDidLoad 调用后才存在,所以我似乎无法对需要 GUI 依赖的常量变量使用“let”常量修饰符。
这是一个例子:
class ViewController: UIViewController {
@IBOutlet weak var blueSquare: UIView!
var animator:UIDynamicAnimator!
required init(coder aDecoder: NSCoder) {
// If animator was constant, it should be initialized here.
// But blueSquare is not initialized at this time, so I can't
// call UIDynamicAnimator(referenceView: blueSquare)
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
// At this time, the initialisation is ok. But animator is now
// actually modifiable
self.animator = UIDynamicAnimator(referenceView: blueSquare)
}
}
如您所见,animator 的编写方式好像是可以修改的。意图不是。
我的问题是:有没有什么不错的模式可以让“动画师”保持不变?我没有找到任何处理 viewDidLoad 和带有 GUI 依赖范式的常量的文档。
【问题讨论】:
标签: ios swift viewdidload let