区分iPhone 4,iPhone 5和iPad之间的用户界面

Tej*_*oop 1 iphone ipad ios

可能重复:
如何检测iPhone 5(宽屏设备)?

我们可以区分iPad和iPhone

UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone/UIUserInterfaceIdiomPad
Run Code Online (Sandbox Code Playgroud)

但是如何根据用户区分iPhone 4和iPhone 5

Mic*_*lum 5

引用这篇文章:

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
Run Code Online (Sandbox Code Playgroud)

然后只需检查:

if( IS_IPHONE_5 )
{}
else
{}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您不想将其定义为宏,则无需将其定义为宏.简化版:

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
    if ([[UIScreen mainScreen] bounds].size.height == 568) {
        //5
    }else{
        //not 5
    }
}else{
    //iPad
}
Run Code Online (Sandbox Code Playgroud)

是的,这适用于景观.即使设备的方向已经改变,设备高度也保持不变.获得UIScreen的高度是不同的,例如获取视图的高度.