-(BOOL)iPhone6PlusDevice{
// Scale is 3 currently only for iPhone 6 Plus
if ([UIScreen mainScreen].scale > 2.9) return YES;
return NO;
}
或
-(BOOL)iPhone6PlusUnZoomed{
if ([self iPhone6PlusDevice]){
if ([UIScreen mainScreen].bounds.size.height > 720.0) return YES; // Height is 736, but 667 when zoomed.
}
return NO;
}
6条答案
按热度按时间li9yvcax1#
有个新成员
它应该能满足你的需求。它只在iOS 8上可用,所以你需要保护它
kzmpq1sx2#
[UIScreen mainScreen].currentMode
报告:bq3bfh9z3#
工作溶液:
旧解决方案(在某些边缘情况下不可靠):
变量为缩放:布尔值{返回UI屏幕.主.比例!= UI屏幕.主.本机比例}
P.S:请不要混淆iPhone设置中的这些功能:
Settings -> Display & Brightness -> Display Zoom
与:
Settings -> Accessibility -> Zoom
.这里我们检查第一种类型。
mfuanj7w4#
以下代码可用于获取
bounds
、coordinateSpace
、nativeScale
和scale
,即,在iPhone 6 Plus上,nativeScale
为2.608,当设备在缩放模式下运行时,nativeScale
为2.88(注意,在模拟器中是不同的):用于检测iPhone 6 Plus的代码:
或
注意:如果您正在检查iPhone 6 Plus,调整用户界面,那么不要依赖
.nativeScale
,因为模拟器和实际设备给予了不同的结果。3htmauhk5#
更新了Paula Chavarría iOS 8 answer中的宏(其中
[UIScreen mainScreen].bounds.size
与方向相关):1u4esq0p6#
这些选项用于检测iPhone设备。