2010-03-07 19 views
6

Ich habe eine benutzerdefinierte UILabel-Klasse erstellt, in der ich eine rote Linie am unteren Rand des Rahmens zeichne. Die rote Linie wird angezeigt, aber ich kann den Text nicht anzeigen. Benutzerdefiniertes UILabel zeigt keinen Text

#import <UIKit/UIKit.h> 


@interface LetterLabel : UILabel { 

} 

@end  


#import "LetterLabel.h" 


@implementation LetterLabel 


- (id)initWithFrame:(CGRect)frame { 
    if (self = [super initWithFrame:frame]) { 
     // Initialization code 
    } 
    return self; 
} 


- (void)drawRect:(CGRect)rect { 
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 2.0); 
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0); 
    CGContextBeginPath(UIGraphicsGetCurrentContext()); 
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), 0.0, self.frame.size.height); 
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), self.frame.size.width, self.frame.size.height); 
    CGContextStrokePath(UIGraphicsGetCurrentContext()); 
} 


- (void)dealloc { 
    [super dealloc]; 
} 


@end 

#import <UIKit/UIKit.h> 
#import "Word.h" 

@interface WordView : UIView { 
    Word *gameWord; 
} 

@property (nonatomic, retain) Word *gameWord; 

@end 

@implementation WordView 

@synthesize gameWord; 

- (id)initWithFrame:(CGRect)frame { 
    if (self = [super initWithFrame:frame]) { 
     self.backgroundColor = [UIColor whiteColor]; 

     LetterLabel *label = [[LetterLabel alloc] initWithFrame:CGRectMake(0, 0, 20, 30)]; 
     label.backgroundColor = [UIColor cyanColor]; 
     label.textAlignment = UITextAlignmentCenter; 
     label.textColor = [UIColor blackColor]; 
     [label setText:@"t"]; 
     [self addSubview:label]; 
    } 
    return self; 
} 


- (void)drawRect:(CGRect)rect { 
    // Drawing code 
} 


- (void)dealloc { 
    [gameWord release]; 
    [super dealloc]; 
} 


@end 

Antwort

20

Sicherlich Ihr LetterLabel braucht die UILabel des drawRect zu nennen: irgendwann?

-(void)drawRect:(CGRect)rect { 
    // Your stuff goes here 
    [super drawRect: rect]; 
} 
+0

Schuldige war - [super drawRect: rect]; –