фон: У меня есть подкласс UITableViewCell
которого расположение определяются как прототип ячейка в раскадровке. Один из ячеек IBOutlets
является подклассом UIView
, который я сделал под названием BorderedProfileImageView
. drawRect:
функция этого класса переопределяется следующим образом:DrawRect пользовательского UIView подкласса не вызывается внутри UITableViewCell
- (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
«s drawRect:
функция никогда не вызывается. Ячейка все еще рисует, UIImageView
, который находится внутри BorderdProfileImageView
. Я звоню setNeedsDisplay
на BorderedProfileImageView
при настройке ячейки.
Почему drawRect:
не звонит?