为什么我的颜色属性始终为null
?
@interface StreamingMediaControlButton : UIButton
@property (strong, nonatomic) UIColor *color;
@end
@implementation StreamingMediaControlButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
_color = [UIColor whiteColor];
}
return self;
}
- (void)drawRect:(CGRect)rect
{
NSLog(@"color: %@", self.color);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, self.color.CGColor);
}
@end
答案 0 :(得分:3)
您之前的评论说您正在使用界面构建器,这意味着在按钮上调用了不同的init方法。你需要实现:
- (id)initWithCoder:(NSCoder *)decoder
{
if ((self = [super initWithCoder:decoder])) {
// setup code
}
return self;
}
通常最好同时实施initWithCoder:
和initWithFrame:
并让他们都调用共享设置代码的commonInit
方法。
答案 1 :(得分:0)
尝试使用Color RGB值而不是直接定义更有效的颜色。