创建适用于iPhone 6 Plus的UI元素(最好使用自动布局)

3
在iOS的Apple Messages应用中,iPhone 6 Plus在名称和消息预览左侧显示联系人图片,但其他设备上并不会这样做。
我想知道是否有一种方法来实现这一点,最好使用Autolayout?我主要感到困惑的是,在选择布局大小时,它说Compact Width和Any Height底部是为3.5英寸,4英寸和4.7英寸的iPhone设计的,没有提到5.5英寸的iPhone 6 Plus。
如果我完全误解了问题,并且无论如何都不能使用Autolayout,那么最简洁的方法是什么?
感谢您的帮助,如果此问题与其他任何问题重复,请接受我的道歉。我已经搜索了很长时间,没有找到任何可以正确回答我的问题的信息。

我有同样的问题,正在等待答案。 - Mahmoud Adam
2个回答

1
我猜他们测试屏幕宽度,这实际上是基于经验的。在越狱的手机上,您可以手动更改分辨率/比例,任何略高于本机6分辨率的内容(这是在iPhone 6上)都添加了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.

1
我无法回答如何在IB中实现此功能,但可以告诉你如何在代码中实现:根据文档,[[UIDevice currentDevice] platform]返回一个字符串,用于标识正在运行的iPhone的精确型号版本,例如iPhone 5s、iPhone 6 Plus等。你可以按照以下方式在代码中检查设备:
 NSString *platform = [self platform];
 if ([platform hasPrefix:@"iPhone7,1"]) {
      //iPhone 6Plus
 }
 else {
      //other devices
 }

我已经将所有带有枚举的iOS设备整合到一个UIDevice类别中:

UIDevice+BHRExtensions.h, UIDevice+BHRExtensions.m


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接