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

IOS don't show logo in 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 phone 中编译应用程序时正确加载,但是当我尝试在 IOS 中使用它时它只是没有加载我的图标,只显示空白页面。我做错了什么?

启动画面的主要目的是给一些时间来加载应用程序及其组件。如果是 Xamarin.Forms 个应用程序,则此时间用于加载 Xamarin 运行时。

现在,您的启动画面本身正在使用 Xamarin.Forms 组件 ContentPage。所以只有Xamarin运行时完全加载后才能显示。

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

Here 是关于如何在 iOS 和 Android.

上原生实现闪屏的很好的教程

是的,当您使用格式不正确或非常complex.And的图像时,通常会出现这种情况。我以前遇到过类似的问题。 在 ios 中强烈推荐矢量图形。

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

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