2013-01-10 54 views
0

我已經做了幾個應用程序,現在在iPhone 5和iPhone上工作,它真的成爲一個基於frame.view.height編程和調整一切的麻煩,所以這次我在我的xib文件中製作視圖,其中一個使用iPhone 5視網膜UIView,另一個使用常規UIView ...現在,如果用戶正在使用iPhone 4-而另一個使用iPhone 5 +則該如何顯示。 。我假設它將在應用程序代表的某處完成。基於iPhone屏幕大小顯示不同的xib文件

我能察覺羯羊或沒有用戶通過在ViewDidAppear檢查superviews框架高度(*它不會在viewDidLoad中工作)

但是,在我從那兒去選擇使用iPhone 5,其查看我顯示...我有1個視圖控制器和xib文件中的視圖的內容都連接到該視圖控制。 視圖本身沒有連接起來......只有一個是與一個空白的Xcode項目附帶的默認「*視圖」,我不知道如何添加第二個。

謝謝!

+2

的[我可以用兩個xibs一個視圖 - 控制 - 回覆:移植到iPhone 5可能重複(HTTP:// stackoverflow.com/questions/12678620/can-i-use-two-xibs-with-one-viewcontroller-re-porting-to-iphone-5) –

+0

不知道這是否有幫助,但[this](http:// stackoverflow.com/a/12396752/1354100)是如何處理多種屏幕尺寸的絕佳解決方案。可以改變你的基本設計決定,以使用兩種不同的觀點。 – Bejmax

回答

2

您可以測試[UIScreen mainScreen].bounds.size.height而不是您的視圖來準確找到屏幕的高度。如果是480它的iPhone 4/4S,如果是568這是一個iPhone 5的4英寸屏幕

+0

但是,選擇使用哪個視圖的最佳方法是什麼? 我只能說'[self.view addSubview:iPhone5View];'但是,然後我浪費顯示兩個視圖的內存嗎?那麼如何擺脫默認視圖並在其位置顯示iPhone5視圖? –

+0

通常你使用'UIViewController'方法在視圖控制器級別執行 - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle'。實際上上面的@ JesseRusak評論中的鏈接有一個很好的代碼示例,在視圖控制器的'viewDidLoad'方法中使用'[[NSBundle mainBundle] loadNibNamed:'。 –

1
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 
    if(result.height == 480) 
    { 
     // iPhone Classic 
    } 
    if(result.height == 568) 
    { 
     // iPhone 5 
    } 
} 
相關問題