Ich habe eine benutzerdefinierte UIView-Unterklasse. In IB habe ich einen "Platzhalter" UIView angegeben und setze die Klasse auf meinen Klassennamen. Meine Überschreibung der drawRect-Methode funktioniert, und der Hintergrund wird richtig eingefärbt, aber der initWithFrame wird nicht ausgelöst. Warum?UIView Unterklasse initWithFrame wird nicht aufgerufen?
- (id)initWithFrame:(CGRect)frame {
NSLog(@"initWithFrame");
if ((self = [super initWithFrame:frame])) {
noteTextFont = [[UIFont boldSystemFontOfSize:12] retain];
}
return self;
}
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor *backgroundColor = [UIColor blackColor];
[backgroundColor set];
CGContextFillRect(context, rect);
UIColor *labelColor = [UIColor lightGrayColor];
[labelColor set];
[notificationLabel drawInRect:CGRectMake(44, 18, rect.size.width-20, rect.size.height) withFont:noteTextFont lineBreakMode:UILineBreakModeTailTruncation];
[self setNeedsLayout];
}
können Sie den Code anzeigen, in dem Sie die benutzerdefinierte Ansicht erstellen? Rufen Sie an: \t UIView * Fred = [[UIView Alloc] initWithFrame: myFrame]; – joelm