tia*_*lin 10
请允许我在这里重复一遍.. ^ _ ^
运行时属性功能允许我们设置UIColor类型,我们需要将其转换为CGColor类型.为了实现这一点,我们需要使用一个属性扩展CALayer类,该属性将UIColor转换为边框和阴影所需的CGColor.
您可以使用类别扩展Objective-C中的类.我添加了两个名为borderIBColor和shadowIBColor的属性,类型为UIColor.IB代表界面构建器.我必须给这些属性一个唯一的名称,以避免名称与名为borderColor和shadowColor的属性CGColor类型冲突.
请参阅以下代码.
CALayer的+ RuntimeAttribute.h
@import QuartzCore;
@interface CALayer (IBConfiguration)
@property(nonatomic, assign) UIColor *borderIBColor;
@end
Run Code Online (Sandbox Code Playgroud)
CALayer的+ RuntimeAttribute.m
@implementation CALayer (IBConfiguration)
- (void)setBorderIBColor:(UIColor *)color {
self.borderColor = color.CGColor;
}
- (UIColor *)borderIBColor {
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Run Code Online (Sandbox Code Playgroud)
最后,当您在xib或storyboard中设置运行时属性功能的borderColor时,请设置borderIBColor而不是borderColor.它看起来像layer.borderIDColor
有你的乐趣.