iPhone 4、iPhone 5、iPad用のユニバーサルアプリを書きたいです。
まず、iPad用のコードを開発しました。今度はそれを他のデバイスに移植したいと思います。
私はそのコードをファイルの先頭に書きました。デバッグすると、2番目の状態になることはありません。デバイスは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
私はどこが間違っていますか?