ran*_*dom 3 xcode preprocessor if-statement header-files ios
我确信这可能非常容易(或者它无法完成),但我似乎无法找到任何东西.
在我的一个.h文件中,我需要确定该应用程序是在iPad还是iPhone上运行.然后相应地更改#define的值.
理想情况下,我会这样看起来像这样:
#if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
#define deltaX 10.0
#define theda 15.0
#define threshHold 267.0
#endif
#if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
#define deltaX 78.1
#define theda 67.2
#define threshHold 453.0
#endif
Run Code Online (Sandbox Code Playgroud)
我不知道该使用什么,非常感谢任何帮助.
感谢您的时间!
bor*_*nid 14
派对有点晚了,但想到我会分享对我有用的东西.
一直在为我工作的解决方案是在某处定义IS_IPAD和IS_IPHONE
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
Run Code Online (Sandbox Code Playgroud)
然后当需要基于ipad/iphone的其他定义时,做这样的事情
#define deltaX (IS_IPAD? 78: 10)
Run Code Online (Sandbox Code Playgroud)
遗憾的是,你不能这样做,因为在通用应用程序中,相同的代码在iPhone上运行,就像在iPad上运行一样,所以这个决定必须在运行时进行,而不是在编译时进行.
您应该在头文件中声明这些变量,然后根据值的值在运行时设置它们UI_USER_INTERFACE_IDIOM().