我想为 iPhone 4、iPhone 5 和 iPad 编写一个通用应用程序。
首先,我为 iPad 开发代码。现在我想把它移植到其他设备上。
我在文件的顶部写了该代码。当我调试时,我发现它永远不会进入第二个条件。尽管设备是 iPhone4,但它始终采用 IS_IPAD 条件的值。
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f)
#define IS_IPHONE_4 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 480.0f)
#ifdef IS_IPAD
#define CELL_WIDTH 180
#define CELL_HEIGHT 123
#define CONTAINER_WIDTH 950
#define NUM_OF_ITEMS_IN_ROW 4
#define CONTAINER_LEFT_MARGIN 50
#define CONTAINER_TOP_MARGIN 70
#define CONTAINER_OUTER_TOP_MARGIN 0
#define CONTAINER_OUTER_LEFT_MARGIN 0
#define CELL_PADDING_RIGHT 32
#define CELL_PADDING_BOTTOM 20
#define MIN_CONTAINER_HEIGHT 450
#elif IS_IPHONE_4
#define IPAD_TO_IPHONE4 0.3
#define CELL_WIDTH 180 * IPAD_TO_IPHONE4
#define CELL_HEIGHT 123 * IPAD_TO_IPHONE4
#define CONTAINER_WIDTH 950 * IPAD_TO_IPHONE4
#define NUM_OF_ITEMS_IN_ROW 4
#define CONTAINER_LEFT_MARGIN 50 * IPAD_TO_IPHONE4
#define CONTAINER_TOP_MARGIN (70 * 0.3)
#define CONTAINER_OUTER_TOP_MARGIN 0 * IPAD_TO_IPHONE4
#define CONTAINER_OUTER_LEFT_MARGIN 0 * IPAD_TO_IPHONE4
#define CELL_PADDING_RIGHT 32 * IPAD_TO_IPHONE4
#define CELL_PADDING_BOTTOM 20 * IPAD_TO_IPHONE4
#define MIN_CONTAINER_HEIGHT 450 * IPAD_TO_IPHONE4
#endif
我哪里错了?