有一个包含的(嵌入式)UINavigationController可以被拖动以填满屏幕,我发现了一个奇怪的错误。正好在导航控制器覆盖整个屏幕的那一刻,它的主视图调整了大小,在该视图和导航栏之间出现了大约20个点的间隙。
它appears这是UINavigationController中的“预期”行为。但你怎么绕过它呢?
答案 0 :(得分:1)
经过几个小时的努力寻找解决方案(甚至认为没有办法绕过这个问题),我找到了一个效果很好的解决方案。
在我的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);
}
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
现在略有不同。也许有些语法有所改变,但这对我有用!是啊!谢谢@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);
}
}
}