热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

IOS中CATextLayer绘制文本字符串

这篇文章主要介绍了IOS中CATextLayer绘制文本字符串的相关资料,希望通过本能帮助到大家,需要的朋友可以参考下

IOS 中CATextLayer绘制文本字符串

CATextLayer使用Core Text进行绘制,渲染速度比使用Web Kit的UILable快很多。而且UILable主要是管理内容,而CATextLayer则是绘制内容。

CATextLayer的绘制文本字符串的效果如下:

代码示例:

// 绘制文本的图层 
CATextLayer *layerText = [[CATextLayer alloc] init]; 
// 背景颜色 
layerText.backgroundColor = [UIColor orangeColor].CGColor; 
// 渲染分辨率-重要,否则显示模糊 
layerText.cOntentsScale= [UIScreen mainScreen].scale; 
// 显示位置 
layerText.bounds = CGRectMake(0.0, 0.0, 100.0, 50.0); 
layerText.position = position; 
// 添加到父图书 
[self.view.layer addSublayer:layerText]; 
// 分行显示 
layerText.wrapped = YES; 
// 超长显示时,省略号位置 
layerText.truncatiOnMode= kCATruncationNone; 
// 字体颜色 
layerText.foregroundColor = [UIColor purpleColor].CGColor; 
// 字体名称、大小 
UIFont *fOnt= [UIFont systemFontOfSize:15.0]; 
CFStringRef fOntName= (__bridge CFStringRef)font.fontName; 
CGFontRef fOntRef=CGFontCreateWithFontName(fontName); 
layerText.fOnt= fontRef; 
layerText.fOntSize= font.pointSize; 
CGFontRelease(fontRef); 
// 字体对方方式 
layerText.alignmentMode = kCAAlignmentJustified; 
// 字符显示 
NSString *text = @"devZhang is iOSDeveloper.devZhang is iOSDeveloper.devZhang is iOSDeveloper.devZhang is iOSDeveloper."; 
// 方法1-简单显示 
layerText.string = text; 
// 方法2-富文本显示 
// 文本段落样式 
NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle alloc] init]; 
textStyle.lineBreakMode = NSLineBreakByWordWrapping; // 结尾部分的内容以……方式省略 ( "...wxyz" ,"abcd..." ,"ab...yz") 
textStyle.alignment = NSTextAlignmentCenter; //(两端对齐的)文本对齐方式:(左,中,右,两端对齐,自然) 
textStyle.lineSpacing = 5; // 字体的行间距 
textStyle.firstLineHeadIndent = 5.0; // 首行缩进 
textStyle.headIndent = 0.0; // 整体缩进(首行除外) 
textStyle.tailIndent = 0.0; // 
textStyle.minimumLineHeight = 20.0; // 最低行高 
textStyle.maximumLineHeight = 20.0; // 最大行高 
textStyle.paragraphSpacing = 15; // 段与段之间的间距 
textStyle.paragraphSpacingBefore = 22.0f; // 段首行空白空间/* Distance between the bottom of the previous paragraph (or the end of its paragraphSpacing, if any) and the top of this paragraph. */ 
textStyle.baseWritingDirection = NSWritingDirectionLeftToRight; // 从左到右的书写方向(一共➡️三种) 
textStyle.lineHeightMultiple = 15; /* Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height. */ 
textStyle.hyphenatiOnFactor= 1; //连字属性 在iOS,唯一支持的值分别为0和1 
// 文本属性 
NSMutableDictionary *textAttributes = [[NSMutableDictionary alloc] init]; 
// NSParagraphStyleAttributeName 段落样式 
[textAttributes setValue:textStyle forKey:NSParagraphStyleAttributeName]; 
// NSFontAttributeName 字体名称和大小 
[textAttributes setValue:[UIFont systemFontOfSize:12.0] forKey:NSFontAttributeName]; 
// NSForegroundColorAttributeNam 颜色 
[textAttributes setValue:[UIColor greenColor] forKey:NSForegroundColorAttributeName]; 
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text]; 
[attributedText setAttributes:textAttributes range:NSMakeRange(0, 8)]; 
layerText.string = attributedText; 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


推荐阅读
  • 本文介绍了当电脑在重装系统后遇到GRUB引导错误时的解决方案,包括修复主引导记录和通过U盘重装系统两种方法。 ... [详细]
  • 详解联想电脑Phoenix、Award、AMI BIOS设置光盘启动方法
    本文详细介绍了如何在联想电脑上通过Phoenix、Award和AMI三种不同类型的BIOS设置光盘启动的方法。无论您是初学者还是有一定经验的技术人员,都能从中获得实用的操作指南。 ... [详细]
  • 探索PWA H5 Web App优化之路(Service Worker与Lighthouse的应用)
    本文探讨了如何通过Service Worker和Lighthouse工具来优化PWA H5 Web App,旨在提升用户体验,包括提高加载速度、增强离线访问能力等方面。 ... [详细]
  • 本文详细介绍了MySQL在Linux环境下的主从复制技术,包括单向复制、双向复制、级联复制及异步复制等多种模式。主从复制架构中,一个主服务器(Master)可与一个或多个从服务器(Slave)建立连接,实现数据的实时同步。 ... [详细]
  • Redis 教程01 —— 如何安装 Redis
    本文介绍了 Redis,这是一个由 Salvatore Sanfilippo 开发的键值存储系统。Redis 是一款开源且高性能的数据库,支持多种数据结构存储,并提供了丰富的功能和特性。 ... [详细]
  • 本文介绍了一种利用迭代法解决特定方程问题的方法,特别是当给定函数f(x)在区间[x1, x2]内连续且f(x1)0时,存在一个x~使得f(x~)=0。通过逐步细化搜索范围,可以高效地找到方程的根。 ... [详细]
  • 转载网址:http:www.open-open.comlibviewopen1326597582452.html参考资料:http:www.cocos2d-ip ... [详细]
  • 本文通过具体示例探讨了在 C++ 中使用 extern "C" 的重要性及其作用,特别是如何影响编译后的对象文件中的符号名称。 ... [详细]
  • 本文详细介绍了如何在Arch Linux系统中安装和配置FlashTool,包括必要的依赖项安装和udev规则设置,以确保工具能够正确识别USB设备。 ... [详细]
  • 本文探讨了在一个UIViewController中同时存在两个或更多tableView时,若它们的初始Y坐标相同,则可能出现布局异常的问题,并深入解析了automaticallyAdjustsScrollViewInsets属性的作用及其设置方法。 ... [详细]
  • A题简单判断#includeusingnamespacestd;typedeflonglongll;intt;intmain(){cint;whil ... [详细]
  • Flutter 高德地图插件使用指南
    本文档详细介绍了如何在Flutter项目中集成和使用高德地图插件,包括安装、配置及基本使用方法。 ... [详细]
  • 本文探讨了C#中所有内置数据类型如何通过默认构造函数初始化,并提供了一个示例方法来展示这些类型的默认值。 ... [详细]
  • 本文介绍了一个基于 div 标签设计的宿舍管理系统登录页面,包括用户身份选择、记住我功能以及错误信息提示。 ... [详细]
  • WorldWind源代码解析:瓦片调度机制详解
    本文深入探讨了WorldWind项目中的关键组件——瓦片调度策略。通过源代码分析,我们将了解摄像头移动时如何动态调整瓦片的加载与卸载,确保地图渲染的高效与流畅。 ... [详细]
author-avatar
朝朝宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有