2010-08-06 13 views
8

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]; 
} 
+0

können Sie den Code anzeigen, in dem Sie die benutzerdefinierte Ansicht erstellen? Rufen Sie an: \t UIView * Fred = [[UIView Alloc] initWithFrame: myFrame]; – joelm

Antwort

-2

, weil Sie diese Ansicht aus einer Feder initialisiert wird, wie es aussieht, so ist es mit dem Standard (UIView ist) initWithNibName: statt Initialisierung mit Initwithframe:

+0

Ist es dann unmöglich, die Initialisierung in der Unterklasse zu überschreiben? Eine andere Frage. In IB wird die Ansicht auf 50pt hoch eingestellt, aber sie wird mit einem 42pt großen Rahmen initialisiert. –

+0

Ich würde versuchen, init überschreiben: auch und sehen, ob es aufgerufen wird. Ich habe vergessen, dass UIView nicht tatsächlich initWithNibName hat. das ist eine Methode in UIViewController –

52

Dinge aus einer Feder geladen werden inited mit -(id)initWithCoder:(NSCoder*)coder

+13

Ich wünschte, die Leute würden zurückkommen und Antworten als richtig markieren. –

Verwandte Themen