3

我正在使用 xamarin.forms 开发应用程序。该应用程序具有带有背景图像的屏幕。因此,为了获得适当的背景,我在这里参考了 ios 文档,并考虑了启动/启动屏幕的尺寸,因为它们就像背景图像一样,但这不起作用。这就是我所遵循的:

苹果手机

  • 320 x 480 默认.png
  • 640 x 960 默认@2x.png
  • 640 x 1136 默认-568h@2x.png
  • 750 x 1334 默认-667h@2x.png
  • 1242 x 2208 默认-736h@3x.png
  • 2208 x 1242 默认-Landscape@3x.png

iPad

  • 768 x 1024 默认人像.png
  • 1536 x 2048 默认-人像@2x.png
  • 1024 x 768 默认风景.png
  • 2048 x 1536 默认-Landscape@2x.png

iphone 6 (iOS 9.0) 中的图像正在重复。

编辑: 我需要在 xamarin.forms 内容页面中用作背景图像的图像的命名约定和大小。

对这个尺寸和命名有什么帮助吗?

4

1 回答 1

3

我也一直在为此苦苦挣扎,似乎 iPhone 6 (Plus) 屏幕没有在 Xamarin.Forms 中实现。

启动屏幕

这可能是因为Apple 自己建议从 iPhone 6 或更好的 iOS 8 开始为您的 LaunchScreen 使用 Storyboard 和/或 XIB 文件。

我引用:

在 iOS 8 及更高版本中,您可以创建 XIB 或故事板文件,而不是静态启动图像。当您在 Interface Builder 中创建启动文件时,您使用尺寸类为不同的显示环境定义不同的布局,并使用 Auto Layout 进行细微调整。使用大小类和自动布局意味着您可以创建一个在所有设备和显示环境上看起来都不错的启动文件。

这实际上由 Xamarin.Forms 支持的。

只需在您的资源文件中创建一个 StoryBoard,配置您的启动屏幕并在您的info.plist文件中选择它作为 LaunchScreen。

Xamarin Studio 中的 info.plist 编辑器

优点是它适用于所有设备。

背景图片

至于背景图像,根据Xamarin iOS 文档,这应该可以工作。如果它不适用于 Xamarin.Forms,您可能应该报告一个错误。同时,您可以使用下面的自定义渲染器,取自Xamarin 论坛或查看该线程的另一个建议:

[assembly: ExportRenderer(typeof(InfoPage), typeof(InfoPage_iOS))]

namespace Oxaco_BBC.iOS
{
    public class InfoPage_iOS : PageRenderer
    {
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(false);

            UIGraphics.BeginImageContext(this.View.Frame.Size);
            UIImage i = UIImage.FromFile("Background.png");
            i = i.Scale(this.View.Frame.Size);

            this.View.BackgroundColor = UIColor.FromPatternImage(i);

        }
    }
}
于 2015-11-25T10:42:01.903 回答