iOS在启动画面中不显示徽标

时间:2019-08-15 17:02:22

标签: c# xamarin xamarin.forms splash-screen

我在Xamarin应用中创建一个SplashPage.cs,代码:

public class SplashPage : ContentPage
    {
        Image splashImage;

        public SplashPage()
        {
            NavigationPage.SetHasNavigationBar(this, false);

            var sub = new AbsoluteLayout();

            splashImage = new Image
            {
                Source = "logo.png",
                WidthRequest = 100,
                HeightRequest = 100
            };
            AbsoluteLayout.SetLayoutFlags(splashImage, AbsoluteLayoutFlags.PositionProportional);
            AbsoluteLayout.SetLayoutBounds(splashImage, new Rectangle(0.5, 0.5, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));

            sub.Children.Add(splashImage);

            this.BackgroundColor = Color.FromHex("#ffff");
            this.Content = sub;
        }

        protected override async void OnAppearing()
        {
            base.OnAppearing();

            await splashImage.ScaleTo(1, 2000);
            await splashImage.ScaleTo(0.9, 1500, Easing.Linear);
            await splashImage.ScaleTo(150, 1200, Easing.Linear);

            Application.Current.MainPage = new NavigationPage(new LoginPage());

        }

    }

然后在App.xaml.cs中

public App()
        {
            InitializeComponent();

            MainPage = new NavigationPage(new SplashPage());
        }

Android中的目录为Resources/drawable/logo.png IOS的目录为Resources/logo.png

当我在android手机中启动应用程序时,将正确加载应用程序,但是当我尝试在IOS中使用它时,仅不加载我的图标,仅显示空白页面。我做错了什么?

2 个答案:

答案 0 :(得分:1)

是的,当您使用格式不正确或非常复杂的图像时,通常会发生这种情况。以前我也遇到过类似的问题。 强烈建议在ios中使用矢量图形。

我已经测试了这个问题,当我使用矢量图像时,它在ios和android中均正常工作。

注意:您可以使用下图进行尝试。

enter image description here

答案 1 :(得分:0)

初始屏幕的主要目的是花一些时间来加载应用程序及其组件。对于Xamarin.Forms应用程序,这次用于加载Xamarin运行时。

现在,您的初始屏幕本身就是在使用Xamarin.Forms组件ContentPage。因此只有在Xamarin运行时完全加载后才能显示。

最好的方法是以iOS和Android的本机方式实现启动屏幕。

Here是一个很好的教程,说明如何在iOS和Android上原生实现启动屏幕。