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