我正在寻找仅被调用一次的viewDidLayoutSubviews
替代方案。
我使用此代码将登录名移出视图:
override func viewDidLayoutSubviews() {
username_input.center.x -= view.bounds.width
password_input.center.x -= view.bounds.width
login_button.center.x -= view.bounds.width
}
我需要这样做一次,这样我就可以在viewDidAppear
时用动画移动它。这一切都很有效,直到我将View拆分为不同的子视图,现在该函数被多次调用。我找不到任何只调用一次的等效函数。
答案 0 :(得分:4)
定义第一次false
执行时转为viewDidLayoutSubviews
的布尔值。我这样做了很多次,效果很好。
fileprivate var firstLayoutSubviewsTime = true
override func viewDidLayoutSubviews() {
if firstLayoutSubviewsTime {
firstLayoutSubviewsTime = false
[...]
}
}