[英]Why viewDidLayoutSubviews is called twice only on first run?
[英]Equivalent to “viewDidLayoutSubviews” that is only called once?
我正在尋找只被調用一次的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拆分為不同的子視圖之前,這一切都很好,現在該函數被多次調用。 我找不到僅被調用一次的等效函數。
定義一個布爾值,該布爾值在第一次執行viewDidLayoutSubviews
會變為false
。 我做了很多次,而且效果很好。
fileprivate var firstLayoutSubviewsTime = true
override func viewDidLayoutSubviews() {
if firstLayoutSubviewsTime {
firstLayoutSubviewsTime = false
[...]
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.