我有一个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]);
}
我在模拟器上测试。
答案 0 :(得分:1)
将您的媒体资源名称更改为myvars
- 这应该会阻止Apple自己的代码设置separatorColor2
。