8

iPhone アプリを iPad に対応させようとしています。ヘッダー ファイルで、いくつかの定数を設定します。画面が大きいため、画像に使用されるいくつかの定数を、iPhone よりも iPad の方が大きくしたいと考えています。これを実現するために、インターネットでいくつかの提案を見つけました。

#if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define imgAmcWidth 656.0f
#define imgAmcHeight 36.0f
#else
#define imgAmcWidth    240.0f
#define imgAmcHeight   20.0f
#endif

これは私のニーズを満たしているようです。残念ながら、xcode 4 はこれをコンパイルできず、「トークン "[" はプリプロセッサでは有効ではありません..」[LLVM GCC 4.2] というエラーが表示されます。私は何を間違っていますか?

4

2 に答える 2

22

おそらく最も洗練されたソリューションではありませんが、コードの大幅な書き直しを防ぐために、次のトリックを使用することにしました。

#define iPad    UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
#define imgAmcWidth         (iPad ? 639.0f : 240.0f)
// etc..
于 2011-05-22T21:45:00.097 に答える
5

UI_USER_INTERFACE_IDIOMUIUserInterfaceIdiomPadプリプロセッサのものではありません。これらは iOS の一部であるため、次のことを行う必要があります。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    <define your constants here>
} else {
    <define your constants here>
}

3.2 より前の iOS バージョンをサポートする予定がある場合は、こちらも参照してください。

于 2011-05-21T08:37:13.303 に答える