MonoTouch:加载屏幕

时间:2011-11-27 18:21:46

标签: c# iphone ios xamarin.ios splash-screen

我的应用程序加载屏幕(default.png)。

当用户暂停我的应用时,我认为iOS会自动截取屏幕截图并在我的应用恢复时将其用作加载屏幕?

如果我实施这个...... http://pastebin.com/P0w9GJrB ...我不会覆盖我的装载屏幕吗?我的意思是如果我的视图中有很多东西,用户按下homebutton并且我的应用程序转到后台。我保存了截图。现在用户终止我的应用程序。下次他运行我的应用程序时,他不会加载保存的截图而不是我原来的加载图像吗?我要问的原因是,如果用户强制我的应用程序终止,那么他在启动我的应用程序时应该看到一个干净的加载屏幕,而不是一个凌乱的保存截图?

谢谢大家。

2 个答案:

答案 0 :(得分:1)

#region Splash Screen
public  void  ShowSplash(){
// get the Height & Width of device Screen
float mainSrcWidth = this.View.Bounds.Width;
float mainSrcHeight = this.View.Bounds.Height;
splashScreen = new UIImageView (UIImage.FromFile ("Images/Default.png"));
splashScreen.Frame = new RectangleF (0, 0, mainSrcWidth, mainSrcHeight);
//Start the thread;
ThreadPool.QueueUserWorkItem (delegate {
Load ();
}
}
this.View.AddSubview(splashScreen);
}
#endregion

#region Load() splashscreen
private void Load ()
//Sleep for 3 seconds to simulate a long load.
Thread.Sleep (new TimeSpan (0, 0, 0, 3));
this.BeginInvokeOnMainThread (delegate {
splashScreen.RemoveFromSuperview ();
splashScreen = null;
});
}
#endregion
  

从Appdelegate Class of FinishedLaunching方法调用ShowSplash()方法

答案 1 :(得分:0)

您应该无法覆盖应用程序文件,包括 Default.png ,因为它是应用程序包的一部分。这样做会使捆绑包的数字签名无效,iOS也不会启动它(除非你有一个root设备)。

您可以通过不使用 Default.png 但您自己的文件(例如,存储在您具有写访问权限的Document目录中,但它将在稍后显示(并且由您自己的代码,就像您已经在您的pastebin中一样),而不是iOS启动您的应用程序时可以执行的操作。

即便如此,它也值得...这一切都取决于您的应用程序加载所需的时间。