【发布时间】:2018-08-04 12:48:53
【问题描述】:
我正在使用模拟器在 iphone x 上测试我的所有内容
这是其中一种方法
struct Device {
// iDevice detection code
static let IS_IPAD = UIDevice.current.userInterfaceIdiom == .pad
static let IS_IPHONE = UIDevice.current.userInterfaceIdiom == .phone
static let IS_RETINA = UIScreen.main.scale >= 2.0
static let SCREEN_WIDTH = Int(UIScreen.main.bounds.size.width)
static let SCREEN_HEIGHT = Int(UIScreen.main.bounds.size.height)
static let SCREEN_MAX_LENGTH = Int( max(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let SCREEN_MIN_LENGTH = Int( min(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let IS_IPHONE_4_OR_LESS = IS_IPHONE && SCREEN_MAX_LENGTH < 568
static let IS_IPHONE_5 = IS_IPHONE && SCREEN_MAX_LENGTH == 568
static let IS_IPHONE_6 = IS_IPHONE && SCREEN_MAX_LENGTH == 667
static let IS_IPHONE_6P = IS_IPHONE && SCREEN_MAX_LENGTH == 736
static let IS_IPHONE_X = IS_IPHONE && SCREEN_MAX_LENGTH == 812
}
这是另一种方法
if UIDevice().userInterfaceIdiom == .phone {
switch UIScreen.main.nativeBounds.height {
case 1136:
print("iPhone 5 or 5S or 5C")
case 1334:
print("iPhone 6/6S/7/8")
case 2208:
print("iPhone 6+/6S+/7+/8+")
case 2436:
print("iPhone X")
retValue = true
default:
print("unknown")
}
}
为什么所有方法都返回 false ?是因为我用的是模拟器还是什么?
【问题讨论】:
-
打印
UIScreen.main.nativeBounds.height的结果并与我们分享! -
这是我使用 iphone x 模拟器 = 1704.0 时的值
-
这里在
Xcode 9.4.1,它打印2436.0。不知道是什么导致它成为1704 -
我也在使用 xcode 9.4.1
标签: ios swift xcode ios-simulator iphone-x