用CATextLayer来实现一个UILabel

用CATextLayer来实现一个UILabel

by 伍雪颖

CATextLayer *textLayer = [CATextLayerlayer];

textLayer.frame =CGRectMake(100,100,100,100);

[self.view.layeraddSublayer:textLayer];

textLayer.foregroundColor = [UIColorblackColor].CGColor;

textLayer.alignmentMode =kCAAlignmentJustified;

textLayer.wrapped =YES;

UIFont *font = [UIFontsystemFontOfSize:15];

CFStringRef fontName = (__bridgeCFStringRef)font.fontName;

CGFontRef fontRef =CGFontCreateWithFontName(fontName);

textLayer.font = fontRef;

textLayer.fontSize = font.pointSize;

CGFontRelease(fontRef);

NSString *text =@"Cupid laid by his brand, and fell asleep";

textLayer.string = text;

textLayer.contentsScale = [UIScreen
mainScreen].scale;
// 在Retina显示

时间: 2024-10-25 17:53:02

用CATextLayer来实现一个UILabel的相关文章

封装一个UILabel圆形边框显示进度

封装了一个UILabel并让它显示圆形的边框,UILabel上面显示百份比,而边框则用Animation绘制到整个圆占指定百分比的点. 这只是我个人想的继承一个UILabel实现的,用到两个CAShapeLayer,第一个Layer的作用是画出灰色的背影圆圈,第二个Layer位置放置在第一个Layer的上面,并设置为红色描绘颜色并描绘到插定的位置,之后实现相应的动画效果即可. import UIKit class kCircleLabel: UILabel { var percent:Doubl

UITextField和一个UILabel绑定 浅析

转载自:http://fengdeng.github.io/blog/2016/01/22/rxswift-dao-di-%5B%3F%5D-ge-uitextfieldshi-ru-he-he-%5B%3F%5D-ge-uilabelbang-ding-de/ 多看多揣摩吧! 只要一行代码 writeTextField.rx_text.bindTo(displayLabel.rx_text) 看下效果 那么这到底是如何实现的呢 整体分析 代码层: writeTextField的rx_text通

iOS一个UILabel 显示两种字体和颜色

UILabel infoLabel3; 以空格为截断点.查找空格的位置,然后建立 NSRang.当然也可以自己指定范围. NSRange range; range = [infoLabel3.text rangeOfString:@" "]; if (range.location != NSNotFound) { NSLog(@"found at location = %lu, length = %lu",(unsigned long)range.location,

一个UILabel不同部分显示不同颜色

我们直接来看效果图吧: 需求:就是表格cell里面的状态Label,前面的"状态:"是黑色,后面的状态值是红色,他们在同一个Label上,怎么做呢? 解答:真的是会者不难,难者不会啊,使用富文本,轻松搞定. 费话不多说,直接上代码: 1 // 根据状态值合成富文本 2 - (NSMutableAttributedString *)getStateString:(NSString *)state{ 3 4 // 合成后的字符串 5 NSString *fullStr = [NSStrin

CA*Layer(CAShapeLayer--CATextLayer)

CAShapeLayer CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类.你指定诸如颜色和线宽等属性,用CGPath来定义想要绘制的图 形,最后CAShapeLayer就自动渲染出来了.当然,你也可以用Core Graphics直接向原始的CALyer的内容中绘制一个路径,相比直下,使用CAShapeLayer有以下一些优点: 渲染快速.CAShapeLayer使用了硬件加速,绘制同一图形会比用Core Graphics快很多. 高效使用内存.一个CAShapeLa

iOS quartzCore第八章—— CATextLayer的运用

用户界面是无法从一个单独的图片里面构建的.一个设计良好的图标能够很好地表现一个按钮或控件的意图,不过你迟早都要需要一个不错的老式风格的文本标签. 如果你想在一个图层里面显示文字,完全可以借助图层代理直接将字符串使用Core Graphics写入图层的内容(这就是UILabel的精髓).如果越过寄宿于图层的视图,直接在图层上操作,那其实相当繁琐.你要为每一个显示文字的图层创建一个能像图层代理一样工作的类,还要逻辑上判断哪个图层需要显示哪个字符串,更别提还要记录不同的字体,颜色等一系列乱七八糟的东西

iOS-Core-Animation-Advanced-Techniques(三)(转)

专用图层 复杂的组织都是专门化的--Catharine R. Stimpson 到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能.但是Core Animation图层不仅仅能作用于图片和颜色而已.本章就会学习其他的一些图层类,进一步扩展使用Core Animation绘图的能力. CAShapeLayer 在第四章『视觉效果』我们学习到了不使用图片的情况下用CGPath去构造任意形状的阴影.如果我们能用同样的方式创建相同形状的图层就好了. CAShap

CoreAnimation3-专用图层

CAShapeLayer CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类.你指定诸如颜色和线宽等属性,用CGPath来定义想要绘制的图形,最后CAShapeLayer就自动渲染出来了.当然,你也可以用Core Graphics直接向原始的CALyer的内容中绘制一个路径,相比直下,使用CAShapeLayer有以下一些优点: 渲染快速.CAShapeLayer使用了硬件加速,绘制同一图形会比用Core Graphics快很多. 高效使用内存.一个CAShapeLay

iOS Core Animation Advanced Techniques(三):专用图层

到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能.但是Core Animation图层不仅仅能作用于图片和颜色而已.本章就会学习其他的一些图层类,进一步扩展使用Core Animation绘图的能力. CAShapeLayer 在第四章『视觉效果』我们学习到了不使用图片的情况下用CGPath去构造任意形状的阴影.如果我们能用同样的方式创建相同形状的图层就好了. CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类.你指定诸如颜色