//
// PHCLabel.m
// TextKit
//
// Created by phc on 16/8/27.
// Copyright © 2016年 phc. All rights reserved.
//
#import "PHCLabel.h"
#import <CoreText/CoreText.h>
@implementation PHCLabel
-(instancetype)initWithFrame:(CGRect)frame{
if ([super initWithFrame:frame]) {
//默认的设置
self.textColor = [UIColor blackColor];
self.textFont = [UIFont systemFontOfSize:15.0];
}
return self;
}
-(void)drawRect:(CGRect)rect{
/**
CTFrame
CTLine
CTRun
*/
NSDictionary *dic = @{
NSForegroundColorAttributeName :[UIColor redColor]
};
NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:self.text attributes:dic];
[attribute addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:[self.text rangeOfString:@"ddd"]];
//设置器
CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef) attribute);
//获取路径
CGMutablePathRef path = CGPathCreateMutable();
//绘制具体的路径
CGPathAddRect(path, NULL, self.bounds);
//CTFrame
CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), path, NULL);
//获取上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//改变坐标系统
CGContextTranslateCTM(context, 0, CGRectGetHeight(self.bounds));
CGContextScaleCTM(context, 1, -1);
//绘制
CTFrameDraw(frame, context);
}
@end
自定义绘制label
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 如果遇到要另外添加的字体文件,要用自定义字体的话: 用ttf文件或者是otf文件 将这个文件放进去你的项目里面,然...
- 最近一直没有更新简书是因为在开发和测试阶段,有任务,没有进行学习,不过在做任务的时候也遇到了一些技术点,在这里总结...
- 自定义View根据你App的不同需要可以简单,也可以很复杂。 重写onDraw() 自定义View需要重写 onD...
- MPAndroidChart是Android平台上一款强大易用的图表库,支持线状图、柱状图、散点图等八种图表类型和...