我正在開發一個應用程序使用iOS 5.1,我遇到了一些奇怪的行爲與default.png文件。iOS 5.1和Default.png
我已經添加下列文件到我的應用程序:
爲Default.png - (iPhone)
[email protected] - (iPhone的Retina)
默認畫像〜iPad的.PNG - 總覽
[email protected]~ipad.png - (iPad的視網膜)
當應用程序啓動時,它似乎選擇了正確的Default.png圖像用於每個場合。然而,在我的AppDelegate我有一個簡單的啓動畫面,使流暢的應用程序的加載和過渡到應用,做這樣的事情:
UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,window.frame.size.width, window.frame.size.height)];
splashView.image = [UIImage imageNamed:@"Default"];
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
但是反過來[UIImage imageNamed:@"Default"]
沒有選擇正確的文件爲每個設備,我相信問題是文件名的-Portrait
部分。
因此,作爲一個快速的解決方案,我這樣做:
if(([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)) {
// Force the image used by ipads
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
splashView.image = [UIImage imageNamed:@"[email protected]~ipad"];
}
else {
splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad"];
}
}
else
splashView.image = [UIImage imageNamed:@"Default"];
這是我應該怎麼做呢?這看起來很有趣嗎?
這是否看起來很有趣?這很有趣 – Krishnabhadra 2012-04-12 11:43:03
嘗試一些NSLogging,看看究竟發生了什麼。 – 2012-04-12 12:34:38
@rokjarc當你做一個簡單的'[UIImage imageNamed:@「默認」]'時,你怎麼能NSLog選擇哪個文件? – mobius 2012-04-12 13:01:23