Xamarin和ios 10 - 所有页面都在标题栏后面移动

时间:2016-09-19 14:11:11

标签: ios xamarin xamarin.ios ios10

我最近更新了ios 10和我的所有Xamarin页面,并且在标题栏后面被提升了。此外页面的底部现在没有触摸屏幕,它也被撞了上来。

这不仅适用于本地项目,也适用于我已在App商店发布的应用程序!

页面大约200px或标题栏的高度。

有谁知道我能为此做些什么?????

2 个答案:

答案 0 :(得分:1)

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

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

感谢@Scott的帮助!!!

答案 1 :(得分:0)

我在Xamarin.Forms应用程序中遇到了同样的问题。我必须做的是通过自定义渲染器将NavigationBar半透明属性设置为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;
            }
        }
    }
}