有一個可以拖動以填滿屏幕的包含的(嵌入的)UINavigationController,我發現了一個奇怪的錯誤。恰恰在導航控制器覆蓋整個屏幕的那一刻,其主視圖調整了大小,並在該視圖和導航欄之間出現了大約20分的差距。UINavigationBar和UINavigationController的內容之間的差距
它appears這是UINavigationController中的「預期」行爲。但你如何解決它?
有一個可以拖動以填滿屏幕的包含的(嵌入的)UINavigationController,我發現了一個奇怪的錯誤。恰恰在導航控制器覆蓋整個屏幕的那一刻,其主視圖調整了大小,並在該視圖和導航欄之間出現了大約20分的差距。UINavigationBar和UINavigationController的內容之間的差距
它appears這是UINavigationController中的「預期」行爲。但你如何解決它?
經過許多小時的努力尋找解決方案(甚至沒有辦法解決這個問題),我發現了一個運行良好的解決方案。
在我的UINavigationController子類中添加以下覆蓋:
override public func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews();
if self.view.frame.size.height == Screen.height {
for childVC in childViewControllers {
childVC.view.frame = CGRectMake(0, navigationBar.frame.size.height, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height - navigationBar.frame.size.height);
}
}
}
現在有一點點不同。也許一些語法更改,但這對我來說是這樣!是啊!謝謝@Lukas Kalinski
override public func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews();
if self.view.frame.size.height == UIScreen.mainScreen().bounds.height {
for childVC in childViewControllers {
childVC.view.frame = CGRectMake(0, navigationBar.frame.size.height, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height - navigationBar.frame.size.height);
}
}
}
Screen.height是未知...使用未解析的標識符。任何新的語法? –