Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止iOS 13中的uinavigationbar和视图之间出现间隙?_Ios_Xamarin_Storyboard_Uikit_Uinavigationbar - Fatal编程技术网

如何防止iOS 13中的uinavigationbar和视图之间出现间隙?

如何防止iOS 13中的uinavigationbar和视图之间出现间隙?,ios,xamarin,storyboard,uikit,uinavigationbar,Ios,Xamarin,Storyboard,Uikit,Uinavigationbar,在iOS 13中使用模式演示时,我们目前在导航栏大小方面存在问题 在大多数情况下,这很好,如本屏幕截图所示: 然而,在一些屏幕中,我们得到了这种奇怪的效果,导航栏的高度较低,在它和视图之间有一个奇怪的“透视”间隙。如本截图所示: 两个视图控制器的属性设置值相同,以模式显示,并且在其子视图上具有相同的约束(与superview/margins/top layout guide的间距为0) 这个问题在iOS 12中不会发生,即使是使用iOS 13 SDK构建的。这是iOS 13(beta 8)中

在iOS 13中使用模式演示时,我们目前在导航栏大小方面存在问题

在大多数情况下,这很好,如本屏幕截图所示:

然而,在一些屏幕中,我们得到了这种奇怪的效果,导航栏的高度较低,在它和视图之间有一个奇怪的“透视”间隙。如本截图所示:

两个视图控制器的属性设置值相同,以模式显示,并且在其子视图上具有相同的约束(与superview/margins/top layout guide的间距为0)

这个问题在iOS 12中不会发生,即使是使用iOS 13 SDK构建的。这是iOS 13(beta 8)中的已知问题,还是我们应该在代码/情节提要中进行调整

override func viewWillAppear(_ animated: Bool) {  
    super.viewWillAppear(animated)  
    if #available(iOS 13.0, *) {  
        navigationController?.navigationBar.setNeedsLayout()  
    }
}  

我们找到了这个解决方案,它对我们很有效。

就像罗德的答案一样,但我发现只有在下一个主线程runLoop中放入setneetslayet()时,它才有效:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Workaround for iOS 13 modal gap below navigationbar
    if #available(iOS 13.0, *) {
        DispatchQueue.main.async {
            self.navigationController?.navigationBar.setNeedsLayout()
        }
    }
}

从未见过,你能提供示例项目吗?@LeonLucardie Hi,也许这应该在ios 13稳定版发布后解决。@JuniorJiang MSFT是的。在iOS 13/XCode GM版本发布后,我将再次检查此问题。由于它也发生在XCode Swift/ObjC项目中(如测试项目中所示),我们至少可以排除任何与Xamarin相关的问题。@JuniorJiang MSFT不幸的是,这个问题似乎仍然发生在iOS 13和XCode的稳定(GM)版本中11@LeonLucardie听到这个消息很难过。这也发生在XCode Swift/ObjC项目中吗?