簡體   English   中英

創建特定於iPhone Six Plus的UI元素(最好使用Autolayout)

[英]Create iPhone Six Plus-Specific UI Elements (preferably with Autolayout)

在iOS上的Apple消息應用程序中,iPhone 6 Plus會在名稱和消息預覽的左側顯示聯系人圖像,這在任何其他設備上都不會顯示。

在此輸入圖像描述

我只是想知道是否有辦法做到這一點,最好是用Autolayout? 我很困惑,因為在選擇布局尺寸時,它在Compact Width和Any Height的底部表示它適用於3.5英寸,4英寸和4.7英寸iPhone,沒有提到5.5英寸iPhone 6 Plus。

在此輸入圖像描述

如果我在這里完全咆哮錯誤的樹,並且絕對沒有辦法用Autolayout做到這一點,那么最好的方法是什么呢?

在此先感謝您的幫助,如果這似乎與任何內容重復,請致歉; 我一直在尋找相當長的一段時間,並沒有找到任何正確回答我的問題。

我猜他們測試屏幕寬度,這實際上是基於經驗。 在越獄手機上,您可以手動更改分辨率/比例,甚至比6+功能中添加的原生6分辨率(這是在iPhone 6上)略高一些。 因此,雖然您可能仍然使用自動布局來布置其他內容,但您將測試UIWindow寬度以查看是否應安裝這些元素。

編輯:我沒有嘗試過,但您可以使用選項來執行此操作。 即(偽代碼):

var contactIcon: UIImageView?

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

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

我無法回答如何在IB中實現這一點,但是如何在代碼中實現:根據文檔, [[UIDevice currentDevice] platform]返回一個字符串,用於標識正在運行的iPhone的確切模型版本,例如iPhone 5s, iPhone 6 plus等

您可以檢查設備的代碼,如下所示:

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

我在UIDevice類別中將所有帶有枚舉的iOS設備放在一起:

UIDevice + BHRExtensions.hUIDevice + BHRExtensions.m

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM