我已经和Xamarin和iOS一起开发了大约两个星期了,目前我正在试图弄清楚为什么会发生一个奇怪的错误。我看了整整一遍谷歌甚至是SO,但无法找到答案......无论如何都是有效的。正如标题所说,每当我更改Translucent
的{{1}}布尔属性时,都会添加额外的填充,看似没有理由。这可以在下面的图片中看到:
我使用的代码行是NavigationController.NavigationBar
,没有该行,应用程序如下所示:
除该行外,this.NavigationController.NavigationBar.Translucent = false;
未经编辑。那么,有谁知道我做错了什么?任何帮助将不胜感激......谢谢!
答案 0 :(得分:0)
这取决于您构建视图及其包含的方式。 确保EdgesForExtendedLayout(Apple Docu)具有正确的值。我建议UIRectEdge.All。
如果您使用的是scrollView,请检查automaticallyAdjustsScrollViewInsets属性。
答案 1 :(得分:0)
所以,我实际上通过在Xamarin论坛上发布并浏览their documentation来了解UINavigationBar.Translucent属性是否会调整视图,如果您将其关闭以使所有屏幕内容在现在下方可见不透明的UINavigationBar。我只是将UI元素放在不必要的大Y值上,因为在.Translucent = false;
我将每个UI元素的.Frame = new CGRect(x, y, w, h)
属性更改为0,位于导航栏的正下方,而不是在其下方。