您的位置:首页 > 其它

CoreAnimation —— CATextLayer(文本绘制)

2016-12-05 00:00 155 查看
CATextLayer图层用来进行文本的绘制,其属性如下:

//渲染的文字字符串
@property(nullable, copy) id string;
//设置字体
@property(nullable) CFTypeRef font;
//设置字号
@property CGFloat fontSize;
//设置文字颜色
@property(nullable) CGColorRef foregroundColor;
//设置自适应图层大小(是否换行)
@property(getter=isWrapped) BOOL wrapped;
/*
设置截断模式(目的是为了适应图层大小)
NSString * const kCATruncationNone;
截断前部分
NSString * const kCATruncationStart;
截断后部分
NSString * const kCATruncationEnd;
截断中间
NSString * const kCATruncationMiddle;
*/
@property(copy) NSString *truncationMode;
/*
设置文字对齐模式
NSString * const kCAAlignmentNatural;
NSString * const kCAAlignmentLeft;
NSString * const kCAAlignmentRight;
NSString * const kCAAlignmentCenter;
NSString * const kCAAlignmentJustified;
*/
@property(copy) NSString *alignmentMode;
// 分辨率
@property CGFloat contentsScale;
// 使用CATextLayer设置文本,可能会产生模糊状态,因为该默认的分辨率不是retina,设置如下代码即可:
textLayer.contentsScale = [UIScreen mainScreen].scale;

例子:

CATextLayer *textLayer = [CATextLayer layer];
textLayer.frame = bgView.bounds;
[bgView.layer addSublayer:textLayer];
// 设置字符串
textLayer.string = @"textLayer初探";
// 设置字号
textLayer.fontSize = 15;
// 设置分辨率
textLayer.contentsScale = [UIScreen mainScreen].scale;
// 设置文字对齐方式
textLayer.alignmentMode = kCAAlignmentCenter;

// 创建背景层(渐变层)
CAGradientLayer *bgLayer = [CAGradientLayer layer];
bgLayer.frame = bgView.bounds;
[bgLayer setColors:[NSArray arrayWithObjects:(id)[UIColor redColor].CGColor,
(id)[UIColor yellowColor].CGColor,
(id)[UIColor orangeColor].CGColor,
nil]];
[bgLayer setLocations:@[@(0.3),@(0.4),@(0.5)]];
[bgLayer setStartPoint:CGPointMake(0, 0)];
[bgLayer setEndPoint:CGPointMake(1, 0)];
// 用文本图层来截取渐变层
[bgLayer setMask:textLayer];
[bgView.layer addSublayer:bgLayer];

效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CATextLayer