2012-09-28 42 views
0

我在我的應用程序中使用視圖大小來定位代碼中的子視圖。iphone 5屏幕上的視圖大小不正確

例如是這樣的:

self.view.bounds.size.height 

此子視圖具有進出視圖來進行動畫處理。

這對舊設備完美工作,現在我試圖支持iphone 5,發現我仍然得到舊設備的高度。除了這個動畫視圖 一切適應完美的iphone 5

,以獲得正確大小的唯一方法是,如果我更改了廈門國際銀行視圖的大小,不足之處是 ,如果我現在運行我的iPhone 4應用程序視圖尺寸是4英寸視圖尺寸。

這裏有什麼問題? 或者這是應該的方式,我必須爲iPhone 5創建一個額外的xib文件?

回答

4

好吧,所以答案是:

像@mrwalker說確保視圖自動或編程調整大小。

並注意到該視圖尚未在viedDidLoad方法中調整大小。 (這是我的錯)

如果您需要調整大小的視圖大小做你的東西在viewWillAppear那裏視圖已經是正確的大小。

感謝@mrwalker和@AndyDev

2

您需要確保您的視圖在其設備上運行時調整大小。你既可以:

  1. 爲iPhone 5創建一個新的廈門國際銀行,因爲你可能對一個iPad
  2. 有現有的廈門國際銀行自動或編程調整

我只會選擇(1)如果你打算有不同的佈局(更多/更少的按鈕等)。

您如何實現(2)取決於您使用的是iOS 6的自動佈局還是舊的自動調整大小模型。這兩種方法都可以在Xcode中的Utilities> Size Inspector中進行控制,或者通過編程方式進行控制。

如果你有單視圖&視圖控制器,允許視圖自動調整到父窗口應該足夠了。

+0

這聽起來很合理。我必須支持舊版本,那麼我該怎麼做?我已經在IB中設置了struts和spring來允許調整大小,如果你的意思是這樣的話。我認爲iphone5的整個視圖只是屬性大小是錯誤的。 – bllubbor

+1

如果您需要支持舊版本,請使用spring&struts(舊的調整大小模型)。您的視圖窗口是否爲正確尺寸?也許你需要確保視圖的框架與超視圖(或窗口)邊界相匹配? – mrwalker

+0

父母是我的應用程序委託,我將VC設置爲rootviewcontroller。代表的窗口顯然是正確的大小,但我的VC視圖沒有正確調整大小。爲什麼?以及如何以及在哪裏設置/檢查VC視圖到超視圖/代表的窗口框架? – bllubbor

1

我有一個類似的問題,我沒有得到正確的高度,使用Autolayout/autoresize沒有達到預期的效果。我使用下面的代碼來確定屏幕大小並基於此進行更改。

if ([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) { 
    CGSize result = [[UIScreen mainScreen] bounds].size; 
    CGFloat scale = [UIScreen mainScreen].scale; 
    result = CGSizeMake(result.width * scale, result.height * scale); 
    if(result.height == 1136){ 
     // iPhone 5 (1136px height) 
    } else { 
     // Not iPhone 5 
    } 
} 
+0

這段代碼是真棒對於我們的一些情況,我會記住這些代碼,但這並不能解決我的問題,謝謝分享 – bllubbor

相關問題