TextKit 的使用


uu 00 11 33 66 55 33 77 11 55 的的专专栏栏 目录视图 摘要视图 订阅 分类: 各种控健 博客专家福利 C币兑换礼品剧透 10月推荐文章汇总 关于11月28日CSDN遭受网络攻击的情况说明 TextKit的使用 2014-11-12 15:25 19人阅读 评论(0) 举报 使用TextKit TextKit是在iOS7中新出的,实现了对CoreText的封装,使用起来更加方便. 虽然是新出的,但也不代表立马就能上手-_-!!,TextKit可以实现图文混排效果,很好用. 1. 使用TextKit加载基本的文本 - (void)viewDidLoad { [super viewDidLoad]; // 装载内容的容器 NSTextStorage *storage = [NSTextStorage new]; [storage replaceCharactersInRange:NSMakeRange(0, 0) withString: @"未选择的路-弗罗斯特\n\n黄色的树林里分出两条路,\n可惜我不能同时去涉足,\n我在那路口久 久伫立,\n我向着一条路极目望去,\n直到它消失在丛林深处。\n但我却选了另外一条路,\n它荒草萋萋, 十分幽寂,\n显得更诱人、更美丽,\n虽然在这两条小路上,\n都很少留下旅人的足迹,\n虽然那天清晨落 叶满地,\n两条路都未经脚印污染。\n啊,留下一条路等改日再见!\n但我知道路径延绵无尽头,\n恐怕我 难以再回返。\n也许多少年后在某个地方,\n我将轻声叹息把往事回顾,\n一片树林里分出两条路,\n而我 选了人迹更少的一条,\n从此决定了我一生的道路。"]; // 给内容容器添加布局(可以添加多个) NSLayoutManager *layoutManager = [NSLayoutManager new]; [storage addLayoutManager:layoutManager]; // 带有内容和布局的容器 NSTextContainer *textContainer = [NSTextContainer new]; [layoutManager addTextContainer:textContainer]; // 给TextView添加带有内容和布局的容器 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 20, 300, 400) textContainer:textContainer]; textView.layer.borderWidth = 1; textView.scrollEnabled = NO; textView.editable = NO; 原创: 转载: 译文: 评论: 个人资料 dodoloov4u 访问: 积分: 等级: 排名: 文章搜索 文章分类 xmpp sip 推送 后台 图片 通讯录 本地化 手势 加密 上架 真机 网络状态 综合 数据持久化 多线程 CALayer iOS7 新控键 设计模式 iOS8 各种控健 swift 文章存档 2014年11月 2014年10月 2014年09月 登录 | 注册 25895次 637 千里之外 9篇 201篇 1篇 4条 (18) (9) (4) (5) (8) (5) (3) (7) (1) (6) (18) (78) (5) (3) (4) (6) (2) (14) (12) (1) (9) (26) (5) TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第1页 共7页 14-12-7 上午11:33 [self.view addSubview:textView]; } 实现的过程如下: storage --> layoutManager --> textContainer --> textView 这.....显示一串文本就要做这么多的事情..... 2. 高亮某些文本 - (void)viewDidLoad { [super viewDidLoad]; // 装载内容的容器 NSTextStorage *storage = [NSTextStorage new]; [storage replaceCharactersInRange:NSMakeRange(0, 0) withString: @"未选择的路-弗罗斯特\n\n黄色的树林里分出两条路,\n可惜我不能同时去涉足,\n我在那路口久 久伫立,\n我向着一条路极目望去,\n直到它消失在丛林深处。\n但我却选了另外一条路,\n它荒草萋萋, 十分幽寂,\n显得更诱人、更美丽,\n虽然在这两条小路上,\n都很少留下旅人的足迹,\n虽然那天清晨落 叶满地,\n两条路都未经脚印污染。\n啊,留下一条路等改日再见!\n但我知道路径延绵无尽头,\n恐怕我 难以再回返。\n也许多少年后在某个地方,\n我将轻声叹息把往事回顾,\n一片树林里分出两条路,\n而我 选了人迹更少的一条,\n从此决定了我一生的道路。"]; // 高亮容器里面的某些内容 [storage addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 5)]; [storage addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(6, 4)]; // 给内容容器添加布局(可以添加多个) 展开 2014年08月 2014年07月 阅读排行 第三方授权 iOS Cell 的高级定制 iOS7右划返回 UItextView的用法及技巧(iOS7下光标bug解决方 CALayer使用2 xmpp 图片、音频 Reader开发(一)电子书分页,翻页效果,字体 CALayer使用1 在iOS上增加手势锁屏、解锁功能 pjsip研究2 评论排行 UItextView的用法及技巧(iOS7下光标bug解决方 CALayer使用1 iOS Cell 的高级定制 iOS 开放必备网址 邮件分享 xmpp协议的实现 ios xmpp 发送语音图片解决方案 XMPPFrameWork IOS 开发(七)消息回执 UITextField出现删除按钮 IOS 新消息通知提示-声音、震动 推荐文章 * Android的Tween动画的实现 框架 * 在Unity中定义统一的对象搜 索接口 * 世界是数字的重点读书笔记 (计算机科普知识) * IT痴汉的工作现状26-好项 目,坏项目 * 搭建Qt界面的OpenCV开发环 境 * OpenVPN的Linux内核版,鬼 最新评论 iOS Cell 的高级定制 一个纯白菜: 写的很详细,学到 了很多东西,另外想问一下大 神,cell.contentView的大小是什 么 UItextView的用法及技巧(iOS7下光标bug解决方案) wangyang2698341: 光标还是看 不到 测试 给我揪出来了让给改 掉 UItextView的用法及技巧(iOS7下光标bug解决方案) wangyang2698341: 我的7.1的加 了这句话 貌似 没效果 CALayer使用1 tuxq5721: 写得很细 , 想想还是 赞一个吧 (4) (6) (602) (405) (379) (351) (345) (267) (258) (235) (233) (223) (2) (1) (1) (0) (0) (0) (0) (0) (0) (0) TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第2页 共7页 14-12-7 上午11:33 NSLayoutManager *layoutManager = [NSLayoutManager new]; [storage addLayoutManager:layoutManager]; // 带有内容和布局的容器 NSTextContainer *textContainer = [NSTextContainer new]; [layoutManager addTextContainer:textContainer]; // 给TextView添加带有内容和布局的容器 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 20, 300, 400) textContainer:textContainer]; textView.layer.borderWidth = 1; textView.scrollEnabled = NO; textView.editable = NO; [self.view addSubview:textView]; } 可以用来设置的属性有这些,你懂得:) /************************ Attributes ************************/ /* Predefined character attributes for text. If the key is not in the dictionary, then use the default values as described below. */ UIKIT_EXTERN NSString *const NSFontAttributeName NS_AVAILABLE_IOS(6_0); // UIFont, default Helvetica(Neue) 12 UIKIT_EXTERN NSString *const NSParagraphStyleAttributeName NS_AVAILABLE_IOS(6_0); // NSParagraphStyle, default defaultParagraphStyle UIKIT_EXTERN NSString *const NSForegroundColorAttributeName NS_AVAILABLE_IOS(6_0); // UIColor, default blackColor UIKIT_EXTERN NSString *const NSBackgroundColorAttributeName NS_AVAILABLE_IOS(6_0); // UIColor, default nil: no background TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第3页 共7页 14-12-7 上午11:33 UIKIT_EXTERN NSString *const NSLigatureAttributeName NS_AVAILABLE_IOS(6_0); // NSNumber containing integer, default 1: default ligatures, 0: no ligatures UIKIT_EXTERN NSString *const NSKernAttributeName NS_AVAILABLE_IOS(6_0); // NSNumber containing floating point value, in points; amount to modify default kerning. 0 means kerning is disabled. (note: values other than nil and 0 are unsupported on iOS) UIKIT_EXTERN NSString *const NSStrikethroughStyleAttributeName NS_AVAILABLE_IOS(6_0); // NSNumber containing integer, default 0: no strikethrough UIKIT_EXTERN NSString *const NSUnderlineStyleAttributeName NS_AVAILABLE_IOS(6_0); // NSNumber containing integer, default 0: no underline UIKIT_EXTERN NSString *const NSStrokeColorAttributeName NS_AVAILABLE_IOS(6_0); // UIColor, default nil: same as foreground color UIKIT_EXTERN NSString *const NSStrokeWidthAttributeName NS_AVAILABLE_IOS(6_0); // NSNumber containing floating point value, in percent of font point size, default 0: no stroke; positive for stroke alone, negative for stroke and fill (a typical value for outlined text would be 3.0) UIKIT_EXTERN NSString *const NSShadowAttributeName NS_AVAILABLE_IOS(6_0); // NSShadow, default nil: no shadow UIKIT_EXTERN NSString *const NSTextEffectAttributeName NS_AVAILABLE_IOS(7_0); // NSString, default nil: no text effect UIKIT_EXTERN NSString *const NSAttachmentAttributeName NS_AVAILABLE_IOS(7_0); // NSTextAttachment, default nil UIKIT_EXTERN NSString *const NSLinkAttributeName NS_AVAILABLE_IOS(7_0); // NSURL (preferred) or NSString UIKIT_EXTERN NSString *const NSBaselineOffsetAttributeName NS_AVAILABLE_IOS(7_0); // NSNumber containing floating point value, in points; offset from baseline, default 0 UIKIT_EXTERN NSString *const NSUnderlineColorAttributeName NS_AVAILABLE_IOS(7_0); // UIColor, default nil: same as foreground color UIKIT_EXTERN NSString *const NSStrikethroughColorAttributeName NS_AVAILABLE_IOS(7_0); // UIColor, default nil: same as foreground color UIKIT_EXTERN NSString *const NSObliquenessAttributeName NS_AVAILABLE_IOS(7_0); // NSNumber containing floating point value; skew to be applied to glyphs, default 0: no skew UIKIT_EXTERN NSString *const NSExpansionAttributeName NS_AVAILABLE_IOS(7_0); // NSNumber containing floating point value; log of expansion factor to be applied to glyphs, default 0: no expansion UIKIT_EXTERN NSString *const NSWritingDirectionAttributeName NS_AVAILABLE_IOS(7_0); // NSArray of NSNumbers representing the nested levels of writing direction overrides as defined by Unicode LRE, RLE, LRO, and RLO characters. The control characters can be obtained by masking NSWritingDirection and NSTextWritingDirection values. LRE: NSWritingDirectionLeftToRight|NSTextWritingDirectionEmbedding, RLE: NSWritingDirectionRightToLeft|NSTextWritingDirectionEmbedding, LRO: NSWritingDirectionLeftToRight|NSTextWritingDirectionOverride, RLO: NSWritingDirectionRightToLeft|NSTextWritingDirectionOverride, UIKIT_EXTERN NSString *const NSVerticalGlyphFormAttributeName NS_AVAILABLE_IOS(6_0); // An NSNumber containing an integer value. 0 means horizontal text. 1 indicates vertical text. If not specified, it could follow higher-level vertical orientation settings. Currently on iOS, it's always horizontal. The behavior for any other value is undefined. TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第4页 共7页 14-12-7 上午11:33 /* This defines currently supported values for NSUnderlineStyleAttributeName and NSStrikethroughStyleAttributeName. */ 3. 图文混排 - (void)viewDidLoad { [super viewDidLoad]; // 装载内容的容器 NSTextStorage *storage = [NSTextStorage new]; [storage replaceCharactersInRange:NSMakeRange(0, 0) withString: @"未选择的路-弗罗斯特\n\n黄色的树林里分出两条路,\n可惜我不能同时去涉足,\n我在那路口久 久伫立,\n我向着一条路极目望去,\n直到它消失在丛林深处。\n但我却选了另外一条路,\n它荒草萋萋, 十分幽寂,\n显得更诱人、更美丽,\n虽然在这两条小路上,\n都很少留下旅人的足迹,\n虽然那天清晨落 叶满地,\n两条路都未经脚印污染。\n啊,留下一条路等改日再见!\n但我知道路径延绵无尽头,\n恐怕我 难以再回返。\n也许多少年后在某个地方,\n我将轻声叹息把往事回顾,\n一片树林里分出两条路,\n而我 选了人迹更少的一条,\n从此决定了我一生的道路。"]; // 高亮容器里面的某些内容 [storage addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 5)]; [storage addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(6, 4)]; // 给内容容器添加布局(可以添加多个) NSLayoutManager *layoutManager = [NSLayoutManager new]; [storage addLayoutManager:layoutManager]; // 带有内容和布局的容器 NSTextContainer *textContainer = [NSTextContainer new]; [layoutManager addTextContainer:textContainer]; // 设置textContainer中要排斥的路径 UIImage *image = [UIImage imageNamed:@"show"]; CGRect areaRect = CGRectMake(5, 5, image.size.width, image.size.height); UIBezierPath *ovalPath = \ [UIBezierPath bezierPathWithRect:areaRect]; textContainer.exclusionPaths = @[ovalPath]; // 给TextView添加带有内容和布局的容器 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 20, 300, 400) textContainer:textContainer]; textView.layer.borderWidth = 1; textView.scrollEnabled = YES; textView.editable = YES; [self.view addSubview:textView]; // 要显示的图片 UIImageView *showImageView = \ [[UIImageView alloc] initWithFrame:areaRect]; showImageView.image = image; [textView addSubview:showImageView]; TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第5页 共7页 14-12-7 上午11:33 上一篇 IOS CoreText.framework --- 基本用法 下一篇 富文本 主题推荐 uiimageview dictionary character 回顾 uiimage } 核心代码: 这是初级的使用,强大的功能需要自己去挖掘了..... 使用段落样式的代码: TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第6页 共7页 14-12-7 上午11:33 猜你在找 旋转翻转UIImage 不是UIImageView 适用于源图像的处 IOS学习笔记十之UIImageView图片视图的基本概念和使 IOS使用UIImageView显示gif动画的例子 在ios中使用opencv将彩色图片转换成为灰度图 swift UIImageView使用 使用手势对UIImageView进行缩放 UIImageView UIImage 小项目 - 汤姆猫动作函数UIImageView animation使用 swift UIImageView使用 UIImage 加载图片及SDWebimage的简单使用介绍 1 5 9 13 17 2 6 10 14 18 3 7 11 15 19 4 8 12 16 20 logo墙字 logo墙水晶字 c语言学习 甲醇测量 logo墙 水晶字logo 亚克力雕刻字 水晶加盟 亚克力字制作 亚克力广告字 水晶logo 亚克力板价格表 logo墙效果图 亚克力广告牌 水晶墙 logo水晶字 吸塑亚克力 亚克力制作 亚克力折弯机 亚克力雕刻机 查看评论 暂无评论 您还没有登录,请[登录]或[注册] * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 核心技术类目 全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 公司简介 | 招贤纳士 | 广告服务 | 银行汇款帐号 | 联系方式 | 版权声明 | 法律顾问 | 问题报告 | 合作伙伴 | 论坛反馈 网站客服 杂志客服 微博客服 webmaster@csdn.net 400-600-2320 | 北京创新乐知信息技术有限公司 版权所有 | 江苏乐知网络技术有限公司 提供商务支持 京 ICP 证 070598 号 | Copyright © 1999-2014, CSDN.NET, All Rights Reserved TextKit的使⽤ - u013653715的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u013653715/article/details/41044273 第7页 共7页 14-12-7 上午11:33
还剩6页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

1219372716

贡献于2014-12-14

下载需要 2 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf