2014-12-27 20 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