UIButton用户定义的运行时属性不起作用

Mic*_*atz 3 uibutton calayer uiview ios xcode6

我试图在自定义UIButton周围绘制边框.这不起作用: 在此输入图像描述

为什么?

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

有你的乐趣.