storyboard使用中遇到的问题

Storyboard使用终于到的问题

我们知道在xib中可以为这个文件中内容添加User Defined Runtime Attributes,这个选项的添加会在runtime的时候自动为这个类添加相应的属性。当时在使用中我们会遇到相应的麻烦,比如在这个选项中添加对应的borderColor。

layer.borderWidth  Number 1
layer.borderColor  Color  redColor

这样的配置设置在运行程序之后,发现button没有borderColor。原因就在于borderColor接受的是一个CGColor的对象,所以需要做相应的转换

@interface CALayer (Addition)
@property (nonatomic, strong) UIColor *xibColor;
@end

@implementation CALayer (Addition)

- (void)setXibColor:(UIColor *)xibColor {
    self.borderColor = xibColor.CGColor;
}

- (UIColor *)xibColor {
    return [UIColor colorWithCGColor:self.borderColor];
}
@end

经过将layer做了category的拓展了之后,将这个category的头文件放在prefix文件中去,这样在runtime的时候就可以找到这个编译文件了。更改了之后runtime Attributes是这样的

layer.borderWidth  Number 1
layer.xibColor     Color  redColor

这样就OK了

Storyboard中的tabbar Selected Image的问题

当tabbar中的tabbarItem在selected状态下也是不一样的图片的时候就需要在这里设置了,单纯的在xib中设置如下图

单纯的设置这里还是不行的,图片在渲染的时候还是会将xib中的tabbarController中的image tint这个设置给带进去。所以还需要设置对应的颜色渲染

加上这个设置就可以完成想要的效果了。