我使用以下代码(在 AppDelegate 中)来检测设备是否为iPhone 5
bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));
它总是返回false。这不是我第一次使用该代码。如果NSLog返回{320,480}
NSLog(@"%@",NSStringFromCGSize([[UIScreen mainScreen] bounds].size));
注意:该应用仅适用于iPad,然后我将其设为通用。所以我将有2个故事板,这就是我需要检测代码的原因。
由于
答案 0 :(得分:1)
这应该是伙伴,
bool isiPhone5 = ([[UIScreen mainScreen] bounds].size.height == 568);
并确保使用4英寸模拟器
答案 1 :(得分:0)
识别iphone 5试试这个
if( [[UIScreen mainScreen]bounds].size.height == 568){
//iphone 5
}
else
{
// less than iphone 5
}
答案 2 :(得分:0)
我使用了以下代码。你可以试试这个:
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
然后你可以这样做:
if (IS_IPHONE_5) {
//Do your stuff
}
希望这有帮助。
答案 3 :(得分:0)
#define IS_iPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
if(IS_iPHONE_5)
{
//Do something
}
else
{
}
答案 4 :(得分:0)
见下面
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone){
if( [[UIScreen mainScreen]bounds].size.height == 568){
//iPhone5 Device
}
else
{
// Normal iPhone device
}
}
答案 5 :(得分:0)
试试这个
#include <sys/sysctl.h>
-(NSString *)getModel {
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *model = malloc(size);
sysctlbyname("hw.machine", model, &size, NULL, 0);
NSString *deviceModel = [NSString stringWithCString:model encoding:NSUTF8StringEncoding];
free(model);
return deviceModel;
}
此Link应该有帮助
答案 6 :(得分:0)
最后我弄清楚了。
<强>解决方案强>
由于该应用仅适用于iPad,因此项目中不存在 Default-568h@2x.png 。所以在添加之后一切正常。
注意,我不需要上面的代码,因为在xcode项目设置中使应用程序通用后,有一部分用于 iPhone / iPod部署信息配置(图标, mainStoryBorad,默认屏幕....)我可以在将iPhone5故事版添加到项目后设置它。