drawRect do UIView personalizado nunca é chamado se o quadro inicial for CGRectZero

Eu tenho uma subclasse personalizada bastante simples do UIView:

#import "BarView.h"
#import <QuartzCore/QuartzCore.h>

@implementation BarView

@synthesize barColor;

- (void)drawRect:(CGRect)rect
{
    NSLog(@"drawRect");
    // Draw a rectangle.
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, self.barColor.CGColor);
    CGContextBeginPath(context);
    CGContextAddRect(context, self.bounds);
    CGContextFillPath(context);
}

- (void)dealloc
{
    self.barColor = nil;

    [super dealloc];
}

@end

Se eu chamar initWithFrame: rect nesta classe com algum rect diferente de zero, funciona bem; mas quando eu chamo initWithFrame: CGRectZero, drawRect nunca é chamado, mesmo depois de modificar o quadro da exibição para um retângulo diferente de zero.

Eu certamente entendo por que uma exibição com um quadro zero nunca teria seu drawRect: chamado, mas por que nunca é chamado mesmo depois que o quadro é alterad

questionAnswers(1)

yourAnswerToTheQuestion