2014-10-03 83 views
0

我正在爲各種版本的iPhone開發一個應用程序,在我的情況下我創建了一個文件.xib類型和一個大小爲320x480的視圖,在這個視圖內有一個UIImage佔據整個視圖(320x480)。爲所有設備自動佈局UIImage

當我在iphone 4或4s屏幕上測試我的應用程序是完美的,但是當我在iphone 5,5s,6,6 plus上測試時,是一個巨大的空白區域,並且圖像不像iPhone那樣處於全屏狀態4個版本。

爲了嘗試和解決這個問題,我把自動佈局,在我的視圖和UIImage中,除了限制添加到我的UIImage與trailing,領先,頂部,底部空間到我的超級查看,但沒有奏效。

如何解決這個問題,並使我的UIImage擴展或減少每個版本的iPhone?

EDIT

這是在圖像中iphone 4上運行,4S:

enter image description here

,這是在圖像中iphone 5運行,5S:

enter image description here

爲什麼在頂部和底部的黑色空間?我該如何解決這個問題?並把所有設備的圖像全屏?

+0

是的,可以預期,因爲你正在爲你的imageView添加自動佈局,取決於她的父母(.xib)。爲什麼不只是添加你的imageView你需要添加它,而不需要創建額外的.xib文件? – EridB 2014-10-03 15:37:31

+0

我建議你使用尺寸類與故事板。憑藉緊湊的寬度和高度,您可以爲所有iPhone設置imageView。 – gabbler 2014-10-03 15:58:00

+0

@CarouselMin多數民衆贊成在這個問題上,我想在沒有故事板的xib文件中使用這個... – user3781174 2014-10-03 16:04:07

回答

0

您需要設置約束條件。

我建議你升級到Xcode 6,看看新的尺寸類系統。

隨着規模類,你只需要處理4種情況: 其所有解釋在這裏:http://carpeaqua.com/2014/06/14/thinking-in-terms-of-ios-8-size-classes/

關於限制看這個(自動版式/自適應UI): http://www.youtube.com/watch?v=p5wD8dvSDbM

如果你不這樣做使用自動佈局,你會有一些批量在你的代碼,因爲你將需要手動設置這樣的UIView的尺寸(如果方向改變,你將需要重新調整)

_background = [[UIView alloc] initWithFrame:CGRectMake(0,0,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];