Fork me on GitHub

UILabel添加发光效果

#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

posted on 2012-04-17 13:45  pengyingh  阅读(2200)  评论(0编辑  收藏  举报

导航