Xamarin 和 ios 10 - 所有页面都移到了标题栏后面

Xamarin and ios 10 - All Pages moved up behind Title Bar

我最近更新到 ios 10 和我所有的 Xamarin 页面,并且已经被提升到标题栏后面。此外,页面底部现在不接触屏幕,它也被提升了。

这不仅发生在本地项目上,也发生在我已经在应用商店中发布的应用上!

页面上移了大约 200 像素或标题栏的高度。

有人知道我可以为此做些什么吗???!?

我的 Xamarin.Forms 应用程序也遇到了同样的问题。我必须做的是通过自定义渲染器将 NavigationBar translucent 属性 设置为 false。如果您不使用表单,则可以在 ViewController 本身中设置此值。

        var navBar = this.NavigationController?.NavigationBar;
        if (navBar != null)
        {
            navBar.Translucent = false;
        }

同样,如果您不使用表单,请尝试在 ViewController 或 Storyboard 中将导航栏的半透明 属性 设置为 false。

我要说的是,对于 Forms,只有旧版本的 Xamarin.Forms 才需要这样做,而最新版本会自行修复此问题。

编辑:应该可以解决此问题的快速(未经测试)内容页面渲染器

using TestApp.iOS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly:ExportRenderer(typeof(ContentPage), typeof(ContentPageRenderer))]
namespace TestApp.iOS
{
    public class ContentPageRenderer : PageRenderer
    {
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            var navBar = this.NavigationController?.NavigationBar;
            if (navBar != null)
            {
                navBar.Translucent = false;
            }
        }
    }
}

要解决此问题,请更新到最新版本的 Xamarin Forms Nuget 包。为此,请在 Xamarin Studio 中右键单击您的解决方案,然后单击“更新 Nuget 包”。这将更新您的所有 NuGet 包,包括 Xamarin.Forms nuget 包,并将解决此问题。

请注意,仅安装最新版本的 Xamarin Studio 无法解决此问题,您必须手动更新 Nuget 包!

感谢@Scott 的帮助!!!