我想为整个应用实现背景图片。
我在Android上使用全局style.xml <item name="android:windowBackground">@drawable/appbg</item>
。我怎样才能在iOS上实现这个目标?
有可能这样吗?
public override bool FinishedLaunching(UIApplication app,
NSDictionary options)
{
...
UIWindow.Appearance.BackgroundColor = UIColor.FromPatternImage(
UIImage.FromFile("appbg.jpg"));
...
}
答案 0 :(得分:1)
我用CustomNavigationPageRenderer解决了这个问题。
[assembly: ExportRenderer(typeof(OIdx.XForms.Pages.CustomNavigationPage),
typeof(OIdx.XForms.iOS.Renderers.CustomNavigationPageRenderer))]
namespace OIdx.XForms.iOS.Renderers
{
class CustomNavigationPageRenderer : NavigationRenderer
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
var img = UIImage.FromBundle("appbg5.jpg");
UIImageView iv = new UIImageView(img);
iv.Layer.ZPosition = -1;
this.View.AddSubview(iv);
}
}
}
答案 1 :(得分:0)
第一次:在AppDelegate
通过Window.BackgroundColor
分配UIIamge
UIColor.FromPatternImage
:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
Window.BackgroundColor = UIColor.FromPatternImage(new UIImage("background.png"));
return true;
}
第二名:在您希望看到此背景的每个View
中,您必须将UIColor
设置为Clear
:
View.BackgroundColor = UIColor.Clear;
注意:应使用多个图像尺寸,以便每个设备获得适当分辨率的图像。
仅供参考:这是影响应用程序整个生命周期的内存耗尽,如果这不是纹理/平铺图像(iOS或Android)并且实际上是单个图像,那真的很糟糕实际上跨越整个屏幕。