2014-12-27 46 views
3

在iOS的Apple Messages應用程序中,iPhone 6 Plus會在名稱和消息預覽的左側顯示聯繫人圖像,而不會對任何其他設備。創建iPhone六個特定於用戶界面的UI元素(最好使用Autolayout)

enter image description here

我只是想知道是否有辦法做到這一點,最好用自動佈局?我主要感到困惑,因爲在選擇佈局尺寸時,它在緊湊寬度和任何高度的底部表示3.5英寸,4英寸和4.7英寸iPhone,而沒有提及5.5英寸iPhone 6 Plus。

enter image description here

如果我在這裏完全找錯了樹,也絕對沒有與自動佈局做這件事的方式,什麼否則做它最巧妙的方法?

在此先感謝您的幫助,並表示道歉,如果這似乎是任何東西的副本;我一直在尋找相當一段時間,還沒有找到任何正確回答我的問題的東西。

+0

我有同樣的問題,等待回答 – 2014-12-28 08:12:09

回答

1

我猜他們測試的屏幕寬度,這實際上是基於經驗。在越獄手機上,您可以手動更改分辨率/縮放比例,甚至可以比6+分辨率中添加的原生6分辨率(iPhone 6上的分辨率)略高。因此,儘管您仍然可以使用自動佈局來展示額外的東西,但您可以測試UIWindow寬度以查看是否應安裝這些元素。

編輯:我沒有試過這個,但你可能可以使用optionals來做到這一點。即(僞代碼):

var contactIcon: UIImageView? 

// in viewDidLoad or something 
if screen.width > 475 { 
    contactIcon = UIImageView(named: "contactphoto.png") 
} 

// in the layout code: 
contactIcon?.autoSetDimensions(size) 
// etc. 
1

我不能回答如何在IB實現這一目標,但如何在代碼中完成:根據文檔,[[UIDevice currentDevice] platform]返回一個字符串識別iPhone的精確模型版本正在運行,例如iPhone 5S,iPhone 6加等

您可以檢查代碼爲這樣的裝置:

NSString *platform = [self platform]; 
if ([platform hasPrefix:@"iPhone7,1"]) { 
     //iPhone 6Plus 
} 
else { 
     //other devices 
} 

我已經把所有的iOS設備使用枚舉在類別:

UIDevice+BHRExtensions.h, UIDevice+BHRExtensions.m