iOS drawRect没有正确读取颜色属性

时间:2015-06-16 14:59:49

标签: ios objective-c uitableview

我有一个UITableViewCell的子类,我试图在drawRect中画一条线。

子类标题中有一个属性separatorColor

@interface DXDecisionsTableViewCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *titleLabel;
@property (nonatomic, strong) UIColor *separatorColor;
@end

drawRect看起来像这样:

- (void) drawRect:(CGRect)rect
{
    [super drawRect:rect];

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGRect cellBounds = self.bounds;
    CGRect separatorRect = CGRectMake(0, cellBounds.size.height - kDXDecisionsTableViewCellSeparatorHeight, cellBounds.size.width, kDXDecisionsTableViewCellSeparatorHeight);

    NSAssert(self.separatorColor, @"separator color not set");
    NSLog(@"%@", [self.separatorColor stringValue]);
    CGContextSetFillColorWithColor(context, self.separatorColor.CGColor);
    //[self.separatorColor setFill];
    //[[UIColor blueColor] setFill];
    //CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
    //self.separatorColor = [UIColor redColor];
    //CGContextSetFillColorWithColor(context, self.separatorColor.CGColor);
    CGContextFillRect(context, separatorRect);

    //NSLog(@"self is %p", self);
}

如果我在drawRect内设置一个颜色,那么它可以工作,我不知道为什么。

如果我打印的值separatorColor我得到#c7c7cc,即使在初始值设定项中它是#7f00ffb2也是正确的。

初​​始化器:

-(void)awakeFromNib {
    // Initialization code

    self.separatorColor = [UIColor colorWithRed:0.5f green:0.0f blue:1.0f alpha:0.7f];
    NSLog(@"%@", [self.separatorColor stringValue]);
}

我在模拟器上测试。

1 个答案:

答案 0 :(得分:1)

将您的媒体资源名称更改为myvars - 这应该会阻止Apple自己的代码设置separatorColor2