我理想的做法是在应用程序委托内以编程方式更改启动图像。但是,在线阅读让我相信没有可能以编程方式以编程方式更改Default.png图像。但我有一个想法。如果我以编程方式将UIImageView添加到应用程序委托窗口并将视图置于前面会发生什么?这是我到目前为止的代码。但是,当我启动应用程序委托时,它不会添加。在日志语句中,我看到了图像,但它没有在实际屏幕上添加。有人可以请仔细检查我的代码,看看我在做错了什么?
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
NSURL *url = [NSURL URLWithString:
@"some website that returns an image"];
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
//UImage is not null, and prints to the screen
NSLog(@"%@",image);
//Allocates a UIIMageview to be placed on the window.
UIImageView * splashView = [[[UIImageView alloc]initWithFrame:CGRectMake(0,0, 320, 480)]autorelease];
//Sets the imageview image.
splashView.image = image;
//Is this right? Adding the UIImageView to the window?
[self.window addSubview:splashView];
//Am I doing this right? Setting the image view at "index 0"?
[self.window bringSubviewToFront:splashView];
}
注意:我意识到这是违反Apple的人机界面指南,但这是我的要求的一部分。希望我对每个人都很清楚。
答案 0 :(得分:0)
你做不到。在应用程序启动之前iOS显示Default.png图像...
对于您的代码,请不要这样做......如果用户处于边缘模式,您的应用程序可能需要一段时间才能启动(加载图像的时间)甚至崩溃(30秒后超时)
最好预先加载图片并在didFinishLaunchingWithOptions中显示:if if。
对于您的初始问题(图片不显示),请尝试将代码放在AFTER
之后 [self.window makeKeyAndVisible];
但请记住:不要那样做! ;)
答案 1 :(得分:0)
无法以任何方式更改启动图像,您可以在启动图像转换后直接加载另一个图像。这些被称为启动画面,但在iOS世界中通常不受欢迎。请仔细阅读Apple Human Interface Guidelines和iOS App Programming Guide。您需要了解有关发布图像的所有信息。
人们经常说人们花费不到一两分钟来评估一个新的应用程序。当您通过立即展示有用的内容来充分利用这个短暂的时期时,您会激起新用户的兴趣并为所有用户提供卓越的体验。
尽可能避免显示启动画面或其他启动体验。用户可以立即开始使用您的应用程序,这是最好的。
您现在可能只是放弃尝试将图像添加到启动图像,除非您在photoshop中执行此操作,然后将其添加为新的Default.png
图像,否则这是不可能的。