#import <UIKit/UIKit.h> @interface DTGlowingLabel : UILabel { UIColor *_outLineColor; UIColor *_insideColor; UIColor *b_lurColor; } @property (nonatomic, retain) UIColor *outLineColor; @property (nonatomic, retain) UIColor *insideColor; @property (nonatomic, retain) UIColor *blurColor; @end
.m
#import "DTGlowingLabel.h" @implementation DTGlowingLabel @synthesize insideColor = _insideColor; @synthesize outLineColor = _outLineColor; @synthesize blurColor = _blurColor; - (id) init { if(self=[super init]) { } return self; } - (void) drawRect:(CGRect)rect { CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(ctx, _outLineColor.CGColor); CGContextSetFillColorWithColor(ctx, _insideColor.CGColor); CGContextSetLineWidth(ctx, self.font.pointSize/60.0); CGContextSetShadowWithColor(ctx, CGSizeMake(0, 0), self.font.pointSize / 10.0, _blurColor.CGColor); CGTextDrawingMode mode = (_outLineColor==nil)? kCGTextFill: ((_insideColor==nil)?kCGTextStroke:kCGTextFillStroke); CGContextSetTextDrawingMode(ctx, mode); [self.text drawInRect:self.bounds withFont:self.font lineBreakMode:self.lineBreakMode alignment:self.textAlignment]; } - (void)dealloc { [super dealloc]; [self.insideColor release]; [self.outLineColor release]; [self.blurColor release]; } @end