有没有办法让设备类型为#define?我希望获得这个环球应用程序,我希望能够知道它是iPad,iPhone4还是iPhone5。
谢谢!
答案 0 :(得分: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)
答案 1 :(得分:2)
反问题:
为什么在有方法可用时使用宏?
宏会以任何方式转换为方法调用,因为您无法在编译时知道在运行时将遇到的设备。
您正在运行的设备是iPad,如果它这样说:
BOOL isThisAnIPad = [[UIDevice currentDevice] userInterfaceIdiom] == UIInterfaceIdiomPad;
除此之外,您可以suffixing them with the correct values自动获取正确的资源,并结合常用的@2x
视网膜图形。