所以我創建Facebook的使用登陸iOS應用程序。登錄屏幕和主屏幕相同(使用相同的視圖控制器),並在登錄時調整內容。隱藏/顯示UI元素VS添加/刪除(SWIFT)
從安全和性能角度登錄時,如何調整屏幕以適應屏幕?
例如:我應該使用removeFromSuperview()和addSubview(視圖)或是否隱藏=真/假?
所以我創建Facebook的使用登陸iOS應用程序。登錄屏幕和主屏幕相同(使用相同的視圖控制器),並在登錄時調整內容。隱藏/顯示UI元素VS添加/刪除(SWIFT)
從安全和性能角度登錄時,如何調整屏幕以適應屏幕?
例如:我應該使用removeFromSuperview()和addSubview(視圖)或是否隱藏=真/假?
您只需要使用按鈕的isHidden
屬性,因爲:
這樣可以節省你一些樣板代碼,特別是如果你使用網點
isHidden
可以輕鬆動畫:
UIView.transition(with: button, duration: 0.4, options: .transitionCrossDissolve, animations: {() -> Void in
button.isHidden = true // or false depending on the need
}, completion: { _ in })
與removeFromSuperview()
一起使用時更難:
UIView.transition(with: segmentedControl, duration: 0.4, options: UIViewAnimationOptions.beginFromCurrentState, animations: {() -> Void in
self.segmentedControl.alpha = 0.0
}, completion: { (_ finished: Bool) -> Void in
self.segmentedControl.removeFromSuperview()
})
卸下和添加UI元素到視圖只是增加代碼和工作,爲程序員,食堂字節分配,進行比較時,以隱藏該元素
使用removeFromSuperview()
或addSubview()
只應當您想要從超級視圖中完全刪除按鈕時使用,最好不要再添加它。
讓我知道如果這能幫助,如果您有意見,請發表評論!相比於使用isHidden
屬性來隱藏,然後取消隱藏視圖時
感謝您的回答,很高興知道!我最終將登錄屏幕和主屏幕分成了不同的視圖,因爲它更好地工作時註銷重置爲根,而不是取消隱藏/顯示UI元素 – Fredrik
添加和移除子視圖是更昂貴的計算。
因此,我們應該使用哪一個是什麼時候?
添加/刪除子視圖
您應該只添加一個子視圖時,該視圖應保持在可預見的未來。同樣,只有在您認爲應該在可預見的未來將其刪除時,您才應刪除該視圖。
隱藏/顯示子視圖
你應該隱藏子視圖當已知該視圖將需要在可預見的未來,反之爲不隱藏被帶回。
你有2 **添加/刪除子視圖**,應該編輯.. –
哎呀我的壞,謝謝:) – torinpitchers
是否有製作登錄和主屏幕使用相同的視圖 - 控制特定的原因是什麼? –
不應該從視圖中刪除元素,只需使用'element.isHidden = true //或false' –
刪除該視圖的最大原因是什麼?複雜性 - 適用於編碼員和用戶。最大的原因不是?我猜測性能/內存可以忽略不計,並且在佈局方面都是相同的。 – dfd