我有一個自定義的UIView,它有一個專門的,手動設置的縱向和橫向方向的框架,因爲autoresizingMasks在我的情況下不起作用。如何強制UIView的layoutSubviews。
我設置在這一框架:
- (void)viewWillAppear:(BOOL)animated
而且它按預期工作。
我的問題是,現在,我的UIView還具有子視圖也有縱向/橫向的專用位置。
我定位在這些子視圖:
- (void)layoutSubviews
如果我現在離開我的viewController在例如縱向,旋轉爲橫向另一個的viewController,然後回來這個的viewController我看到我的觀點得到了正確的調整,但我的觀點的子視圖,其中獲得定位在layoutSubviews尚未重新定位,而是以動畫方式後調整這個觀點已經出現了。
我什麼都不做在viewDidAppear,我已經打過電話
- (void)layoutIfNeeded
除了:
- (void)setNeedsLayout
在viewWillAppear中,但它似乎並沒有改變任何東西。
任何想法我做錯了嗎?
謝謝。
此方法似乎比只調用self.view.layoutSubviews() –
更好。調用layoutSubviews將使用您設置的任何約束來排列子視圖。如果你在做什麼不使用約束,你需要setNeedsLayout,然後layoutIfNeeded立即強制佈局更新。 – Toby