自定义UIView子类的drawRect未在UITableViewCell中调用

时间:2014-11-06 20:34:42

标签: ios objective-c uitableview drawrect

背景 我有一个UITableViewCell的子类,其布局被定义为故事板中的原型单元格。其中一个单元格IBOutlets是我UIView的子类,名为BorderedProfileImageView。此类的drawRect:函数被覆盖如下:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetStrokeColorWithColor(context, [[UIColor blueColor] CGColor]);
    CGContextSetLineWidth(context, 1.f);
    CGFloat halfWidth = self.bounds.size.width/2;
    NSInteger radius = sqrt(pow(halfWidth, 2) + pow(halfWidth, 2)) - 8.5;
    CGContextAddArc(context,self.bounds.size.width/2,self.bounds.size.height/2,radius,0,2*3.1415926535898,1);
    CGContextStrokePath(context);
}

这为UIView添加了一个蓝色环。

问题:
蓝色戒指永远不会出现,BorderdProfileImageView' drawRect:函数永远不会被调用。单元格仍然绘制,UIImageView内的BorderdProfileImageView被绘制。设置单元格时,我会在setNeedsDisplay上调用BorderedProfileImageView

为什么drawRect:没有被调用?

1 个答案:

答案 0 :(得分:0)

我明白了。

IB中设置为BorderedProfileImageView的对象原来是UIImageView。将此对象更改为UIView并重新链接已导致所需行为。