0

有什么方法可以将设备类型设为#define?我想为通用应用程序获取这个,我想知道它是 iPad、iPhone4 还是 iPhone5。

谢谢!

4

2 回答 2

2
#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
#define IS_IPHONE ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone )
#define IS_IPHONE_5 ( IS_IPHONE && IS_WIDESCREEN )
#define IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
于 2012-12-04T23:25:54.650 回答
2

反问:

当有可用的方法时,为什么要使用宏?
该宏以任何方式转换为方法调用,因为在编译时您无法知道在运行时您将遇到什么设备。

您正在运行的设备是 iPad,如果它这样说:

BOOL isThisAnIPad = [[UIDevice currentDevice] userInterfaceIdiom] == UIInterfaceIdiomPad;

除此之外,您可以通过使用正确的值加上通常用于视网膜图形的后缀来自动获得正确的资源。@2x

于 2012-12-05T00:07:52.980 回答