appearance - 自定义外观属性

步骤:

创建一个视图
在其.h文件中声明的属性后添加 UI_APPEARANCE_SELECTOR

@property (nonatomic, strong) UIColor *viewColor UI_APPEARANCE_SELECTOR;

在其.m文件中初始化时可添加一些默认操作

+ (void)initialize {

    myView *myv = [self appearance];
    myv.viewColor = [UIColor blueColor];

}

重写其setter/getter方法

- (UIColor *)viewColor {
    return self.backgroundColor;
}

- (void)setViewColor:(UIColor *)viewColor1 {
    viewColor = viewColor1; // 我在开始添加了@synthesize viewColor;
    self.backgroundColor = viewColor;
}

在使用其之前进行设置:控制器添加

  [[myView appearance] setViewColor:[UIColor lightGrayColor]];  // 一定要放到addsubView之前

   [[UILabel appearanceWhenContainedInInstancesOfClasses:@[[UILabel class]]] setBackgroundColor:[UIColor redColor]];

    myView *myv = [[myView alloc] initWithFrame:CGRectMake(10, 20, 250, 40)];
    [self.view addSubview:myv];

结果便可以展示出来,view在控制器上颜色为:灰色,如果注释:

 [[myView appearance] setViewColor:[UIColor lightGrayColor]]; 

结果便是初始设置的颜色:蓝色


遗留问题:测试这些东西之前测试了在控制器viewDidLoad中设置了label的外观属性。

  [[UILabel appearance] setBackgroundColor:[UIColor redColor]];
   UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 200, 50)];
    label.text = @"选择颜色";
    [self.view addSubview:label];

此外还在storyboard中添加了一个label,结果只有storyboard中的label被更改了外观颜色,而自己设置的却没有改变?探究ing.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值