Xcode根据目标

时间:2015-11-27 06:11:20

标签: ios xcode uibutton xcode7 targets

我正在开发一个ipad应用程序,它将有两个目标,但颜色主题将对目标不同,例如在Tar​​get1中,所选按钮的字体颜色将为红色,而在Target2中,所选按钮的字体颜色将为绿色。我想知道在界面构建器本身中这是否可行?

提前致谢!!

2 个答案:

答案 0 :(得分:2)

您可以使用预处理器宏。选择目标,转到目标的构建设置部分,找到预处理器Marcro 并为每个目标添加新宏(例如,针对您的Target1)第一个目标和第二个目标的Target2)。现在您可以使用代码:

#ifdef Target1
  //code for your first target
#elif Target2
  //code for your second target
#endif

我希望它会对你有帮助; - )

答案 1 :(得分:0)

您可以使用以下解决方案:

  1. 创建具有应用主题的.h文件

// h文件

@interface AppTheme : NSObject 


@property (nonatomic) UIColor *backgroundColor;
@property (nonatomic) UIColor *buttonTextColor;
//and so on.
//you can create classes or protocols for curtain elements of your app
//
@property (nonatomic) ButtonStyle *defaultButtonStyle;
@property (nonatomic) ButtonStyle *destroyButtonStyle;
//and so on where 
// Button style has titleColor, titleFont, background and ect.

@end
  1. 现在您可以为目标A创建.m文件

AppTheme + A.m,您可以在其中定义主题,如下所示:

@implementation

- (instancetype)init {

   if (self = [super init]){
       self.backgroundColor = [UIColor black];
       self.buttonTextColor = [UIColor white];
//and so on
   }

   return self;
}

@end

对于目标B,您可以创建其他文件: AppTheme + B.m,您可以在其中定义主题:

@implementation

- (instancetype)init {

   if (self = [super init]){
       self.backgroundColor = [UIColor pinkColor];
       self.buttonTextColor = [UIColor yellowColor];
//and so on
   }

   return self;
}

@end
  1. 然后在目标 A 和AppTheme + B.m目标 B 中包含您的AppTheme + A.m。