背景
我有一个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:
没有被调用?
答案 0 :(得分:0)
我明白了。
IB中设置为BorderedProfileImageView
的对象原来是UIImageView
。将此对象更改为UIView
并重新链接已导致所需行为。