2013-04-27 70 views
0

我很抱歉我的英語。我如何將iPhone 4動態圖像更改爲iPhone 5屏幕

在我試圖在第一個視圖中開發的應用程序中,我有一組4個圖像,一個橫幅和一個標籤欄,我想完全覆蓋屏幕大小。對於3.5英寸iPhone而言,沒有問題,但問題始於4英寸iPhone。目前我使用自動佈局,每個圖像都有一個限制,但我認爲這不是最好的解決方案來解決我的問題,事實上,導致圖像和標籤欄之間的iPhone 4英寸觀點。

要解決這個問題,在你看來,哪個是最好的解決方案?是否有可能拉伸圖像並調整它們以覆蓋整個屏幕?或者最好是根據設備屏幕大小加載兩組不同的圖像?

另一個想法,我必須是具有合適的尺寸使用圖片爲iphone 4英寸,並顯示在一個iphone 3.5英寸時,在本實施例中的底部部分地覆蓋這樣的:

http://www.manuelragazzini.it/microfoni.jpg

下面我發佈的我的情況,什麼一個例子,我想爲結果(3.5英寸也有一個導航欄,但編程隱藏這樣的觀點是完美的)

http://www.manuelragazzini.it/domanda.jpg

回答

0

我認爲最好爲3.5和4英寸顯示器提供兩個獨立的筆尖文件。是的,我知道這會增加你的努力,但是是的,代碼將來會更易於管理。你只需要提供單獨的筆尖。

可以使用以下方法每次爲所需維度動態加載nib。

-(void)pushViewController:(UIViewController*)viewController withNib:(NSString*)nibName 
{ 


if(nibName){ 

    nibName=[self getNibNameForNib:nibName]; 

    viewController=[viewController initWithNibName:nibName bundle:nil]; 
    [self.navigationController pushViewController:viewController animated:YES]; 
} 

} 


-(NSString*)getNibNameForNib:(NSString *)nibName 
{ 
NSString *newNibName=nil; 

if([self isIphone5Retina4InchDisplay]){ 
    newNibName=[nibName stringByAppendingString:@"-568h"]; 
} 

if(newNibName && [[NSBundle mainBundle] pathForResource:newNibName ofType:@"nib"] != nil) 
{ 
    //if iphone 5 and nib is also present for that resolution. 
    nibName=newNibName; 
} 

return nibName; 
} 

/** 
Method to get if device is 4 inch iphone 5 retina device or not. 
*/ 
-(BOOL)isIphone5Retina4InchDisplay 
{ 

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) { 
    // code for 4-inch screen 
    return YES; 
} else { 
    // code for 3.5-inch screen 
    return NO; 
    } 
} 

僅舉視網膜4 INCH NIB NAME AS LoginViewController-568h.xib即添加-568h後綴。每次使用此 pushViewController方法推送新的視圖控制器。您可以在您的基本視圖控制器中編寫此方法。

+0

感謝您的回覆!我會嘗試,我會讓你知道;) – 2013-05-01 09:38:00

+0

好吧,我已經使用了兩種不同的圖像大小不同,我改編他們到屏幕上,沒有自動佈局 – 2013-06-03 08:17:28

0

我會爲您的麥克風示例使用2套圖像,只是因爲如果您希望在選項卡和麥克風之間留有這個空白區域,那就是要走的路。

您可以通過檢查代碼中的iPhone Model來實現此目的,從而加載相應的圖像。

如果你在磁盤空間不足(不能有多個iPhone模型圖像),那麼調整大小的方法可以做到這一點。

+0

我很抱歉,但我的英語很差,也許你不明白我的意思。我不希望白色空間和麥克風的圖像是爲了展示我打算寫的時候的一個例子,即圖像「....在3.5英寸的iphone中顯示的圖像被部分覆蓋」。 – 2013-04-27 13:42:21