3

I am trying to define constants in one of my file in my project.

i know, i can define it like below

const CGSize kSize = { 46.f, 44.f };

But what i am trying to achieve like this :

if device type iPad

const CGSize kSize = { 146.f, 144.f };

else

const CGSize kSize = { 46.f, 44.f };

Is it possible to achieve above point ?

Can any one help me how can i achieve this. any help or any guidance will be helpful.

4

5 回答 5

8

如果您的应用程序是通用应用程序,那么您在编译时不知道您的应用程序将在什么设备上运行(当然您可以在 iPad 上运行 iPhone 应用程序,但它们会保留 iPhone 尺寸)。您需要运行时检查以确定合适的大小。

UIUserInterfaceIdiom idiom = UI_USER_INTERFACE_IDIOM();

if (idiom == UIUserInterfaceIdiomPad) {
    // iPad
} else if (idiom == UIUserInterfaceIdiomPhone) {
    // iPhone
}
于 2013-05-27T08:03:25.613 回答
4

将此用作:

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

if (IS_IPAD) {
 const CGSize kSize = { 146, 144 };
} else {
  const CGSize kSize = { 46, 44 };
}

希望它可以帮助你。

于 2013-05-27T08:08:28.063 回答
2
const CGSize kSize;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
  kSize = { 146, 144 };
} else {
  kSize = { 46, 44 };
}

希望这可以帮助。

于 2013-05-27T08:06:23.617 回答
1

你可以像这样实现它:

#define isIpad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define kSizeIpad CGSizeMake(146.f, 44.f)
#define kSizeIPhone CGSizeMake(46.f, 44.f)

现在您可以检查代码是否在 iPhone 或 iPad 上运行:

if (isIpad) {
    CGSize sizeIpad = kSizeIpad;
} else {
    CGSize sizeIphone = kSizeIPhone;
}

我的建议是在项目中放置一个.h文件(例如KConstand.h)并在那里定义所有常量变量。

例如:

#ifndef Myproject_kConstant_h
#define Myproject_kConstant_h

#define isiPhone5 (CGRectGetHeight([UIScreen mainScreen].bounds) == 568) ? YES : NO
#define isiPhone (UI_USER_INTERFACE_IDIOM() == 0)

#define kSizeIpad CGSizeMake(146, 44)
#define kSizeIPhone CGSizeMake(46, 44)

#endif
于 2013-05-27T08:17:41.147 回答
1

全局定义它。

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)    
if(IS_IPAD)
    const CGSize kSize = { 146.f, 144.f };
else
    const CGSize kSize = { 46.f, 44.f };

检查每个班级,例如

if(IS_IPAD)
 // kSize........for iPad
else
 //---- else part --------
于 2013-05-27T08:09:28.897 回答