| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //
- // TestLabel.m
- // 38-文字渐变色-C
- //
- // Created by 于 传峰 on 15/7/27.
- // Copyright (c) 2015年 于 传峰. All rights reserved.
- //
- #import "CFGradientLabel.h"
- @implementation CFGradientLabel
- - (void)drawRect:(CGRect)rect
- {
-
- // CGSize textSize = [self.text sizeWithAttributes:@{NSFontAttributeName : self.font}];
- // CGRect textRect = (CGRect){0, 0, textSize};
- //
- // // 画文字(不做显示用 主要作用是设置layer的mask)
- // CGContextRef context = UIGraphicsGetCurrentContext();
- // [self.textColor set];
- // [self.text drawWithRect:rect options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : self.font} context:NULL];
- //
- // // 坐标 (只对设置后的画到context起作用 之前画的文字不起作用)
- // CGContextTranslateCTM(context, 0.0f, rect.size.height- (rect.size.height - textSize.height)*0.5);
- // CGContextScaleCTM(context, 1.0f, -1.0f);
- //
- // CGImageRef alphaMask = NULL;
- // alphaMask = CGBitmapContextCreateImage(context);
- // CGContextClearRect(context, rect);// 清除之前画的文字
- //
- //
- // // 设置mask
- // CGContextClipToMask(context, rect, alphaMask);
- //
- // // 画渐变色
- //
- // CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- // CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)self.colors, NULL);
- // CGPoint startPoint = CGPointMake(textRect.origin.x+1,
- // textRect.origin.y+1);
- // CGPoint endPoint = CGPointMake(textRect.origin.x+1,
- // textRect.origin.y + textRect.size.height-1);
- // CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
- //
- // // 释放内存
- // CGColorSpaceRelease(colorSpace);
- // CGGradientRelease(gradient);
- // CFRelease(alphaMask);
-
-
- CGContextRef context = UIGraphicsGetCurrentContext();
-
- CGContextSetLineWidth(context, self.outLineWidth);
-
- CGContextSetLineJoin(context, kCGLineJoinRound);
-
- CGContextSetTextDrawingMode(context, kCGTextStroke);
-
- self.textColor = self.outLinetextColor;
-
- [super drawTextInRect:rect];
-
- self.textColor = self.labelTextColor;
-
- CGContextSetTextDrawingMode(context, kCGTextFill);
-
- [super drawTextInRect:rect];
- }
- @end
|