2014-01-22 36 views
1

大家好,我是新的ios開發人員。我創建的應用程序可以在ios5以及ios7中運行。我的問題是,當我在模擬器中完美地顯示ios5的圖像幀時,但是當我在設備上運行它時,Y座標自動增加並且圖像的位置發生變化。請告訴我爲什麼發生這種情況以及如何在單個應用中設置不同設備的幀。如何在iOS設置多個設備的幀?

+0

這不是iOS,這是改變的原因,它是iPhone 5和iPhone5的不同之處。如果您希望在同一位置觀看,只需移除自動佈局 –

+2

爲什麼您需要支持iOS 5甚至iOS 6?考慮到iOS 7佔所有設備的80%,除非您專門針對較舊的設備,否則僅通過iOS 7即可爲您省去很多麻煩。 – CaptainRedmuff

回答

0
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 6 
} 
else if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 7 
} 

你可以試試這個,這段代碼會給你ios的版本。讓我知道是否有幫助.. :)

編輯:

如果你希望得到您的屏幕大小嚐試下面的代碼:

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
if (screenRect.size.height == 568) { 
    //Its IPhone 5 
} 
else if (screenRect.size.height == 480){ 
    //Its below iPhone 5 
} 
+0

您不應該使用'systemVersion'來檢查您正在運行的iOS版本。但是你應該檢查基礎版本:'if(floor(NSFoundationVersionNumber)<= NSFoundationVersionNumber_iOS_6_1)' – rckoenes

+0

@rckoenes systemVersion有什麼不好的影響?我不知道。讓我知道,我會編輯我的答案。 – Rashad

+0

那麼'systemVersion'就是一個字符串,你正在投射到一個浮點。然後比較。 'foundationVersionNumber'是底層SDK的編號,可以用來表示它的變化。 Apple建議您使用'foundationVersionNumber'來檢測iOS版本。例如,Apple TV是systemVersion與iOS版本號不同,但不構成基礎編號。 – rckoenes

3

你不應該檢查設備或iOS模型。您應該使用Auto Layout或UIView Autoresizing蒙版。有關於這些主題的各種WWDC視頻。