iOS富文本(一)属性化字符串】的更多相关文章

概述 iOS一些复杂的文本布局一般都是由底层的Core Text来实现的,直到iOS7苹果发布了Text Kit框架,Text Kit能够很简单实现一些复杂的文本样式以及布局,而Text Kit富文本框架用到的核心数据结构就是属性化字符串NSAttributeString,本篇文章将介绍NSAttributeString一些常用属性和使用方法. 字体样式 NSAttributeString有很多属性提供来改变字体的样式,下面代码只是列出了一些常用的属性,如果想更改更多的字体样式请参考苹果官方文档…
本文转载 http://blog.cnbang.net/tech/2630/ DTCoreText是个开源的iOS富文本组件,它可以解析HTML与CSS最终用CoreText绘制出来,通常用于在一些需要显示富文本的场景下代替低性能的UIWebView,来看看它是怎样解析和渲染HTML+CSS的,总体上分成两步: 数据解析—把HTML+CSS转换成NSAttributeString 渲染—用CoreText把NSAttributeString内容渲染出来,再加上图片等元素 本篇先介绍第一步,数据解…
概述 Text Kit 是建立在Core Text上的文本布局系统,虽然没有Core Text那么强大的文本处理功能,但是对于大多数常见的文本布局用Text Kit能够很简单的实现,而不是用Core Text底层的 API去实现.在Text Kit出现以前,UITextView一直是基于WebKit构建的,而iOS7以及以后的版本UITextView都基于Text Kit来构建.下图是摘取苹果官方文档展示了Text Kit在iOS文本与绘图框架中的位置,可见UILabel,UITextField…
// NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12 // NSForegroundColorAttributeNam 设置字体颜色,取值为 UIColor对象,默认值为黑色 // NSBackgroundColorAttributeName 设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色 // NSLigatureAttributeName 设置连体属性,取值为NSNumber 对象(整数),0 表…
iOS--NSAttributedString超全属性详解及应用(富文本.图文混排)   ios项目中经常需要显示一些带有特殊样式的文本,比如说带有下划线.删除线.斜体.空心字体.背景色.阴影以及图文混排(一种文字中夹杂图片的显示效果).通常想要实现这些效果要使用到iOS的Foundation框架提供的NSAttributedString类,NSAttributedString类中有许多属性,不同属性对应不同的文本样式.本文主要对这些属性做一个解释说明,并会结合实际代码来应用它们. 1. NSA…
背景:前些天突然想做一个笔记本功能,一开始,觉得挺简单的呀,一个UITextView,网络缓存也不干了,直接本地NSUserDefault存储,然后完事了,美工,弄几张好看的图片,加几个动画,也就这样了.接着,按照惯例,查看已有的备忘录软件,其app store知名的软件:Weiconote等. 才发现没那么简单.这里先不考虑图文混排的问题,首先面对的就是:键盘隐藏之后,文字的位置移动问题啦.细心的体验后发现:系统的备忘录,已经一些做得好的软件,都会进行一些处理,例如: 1.当我编辑的时候,光标…
最近项目中用到了图文混排,所以就研究了一下iOS中的富文本,打算把研究的结果分享一下,也是对自己学习的一个总结. 在iOS中或者Mac OS X中怎样才能将一个字符串绘制到屏幕上呢?            简单来说,是通过控件来完成的,而这些控件都封装在UIKit框架中(对于Mac OS X是AppKit框架),在UIKit中常用来在屏幕上显示字符串的控件有3个:           UILabel           UITextField           UITextView      …
直接调用系统的写起来比较麻烦,封装一下 因为要简单所以就写类方法 WJAttributeStyle 基类 ) {         ; i < styles.count; i ++) {         WJAttributeStyle *style = styles[i];         [attributeString addAttribute:style.attributeName                                 value:style.value     …
要在页面中显示自己的布局,比如文字的字体和颜色.图文并排的样式,我们要用iOS SDK的原生UI在app本地搭建,如果一个页面需要在服务器端获取数据的话,我们也要在本地搭建好固定的布局,解析服务器传回的Json数据去进行填充.但是如果一个页面的布局是不固定的话,比如一个web页面,用HTML与CSS封装,我们通常会使用UIWebView进行处理.但是这样处理等于是是把某一个页面纯粹当成了Web页面进行渲染,在移动app开发中,这样的情况被称为“非原生”,不仅会失去渲染速度和交互体验,当一个页面上…
开发过程中,经常会遇到动态计算行高的问题, - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0); 是苹果…
富文本,顾名思义就是丰富的文本格式,本文demo使用NSMutableAttributedString //获取富文本 NSMutableAttributedString*attributeString_atts=[[NSMutableAttributedString alloc]initWithString:string]; //背景色 UIColor *backgroundColor=[UIColor whiteColor]; //字体 UIFont *font=[UIFont fontWi…
  本文转载至 http://blog.csdn.net/duxinfeng2010/article/details/9004749  本节关于RTLable基本介绍,原文来自 https://github.com/honcheng/RTLabel RTLabel 基于富文本的格式,适用于iOS,类似HTML的标记. RTLabel 基于UILabel类的拓展,能够支持Html标记的富文本显示,它是基于Core Text,因此也支持Core Text上的一些东西.   特点 粗体和斜体 颜色和大…
NSString *name = nil; if (_payNumber == 1) { name = [NSString stringWithFormat:@"向%@收款",nameStr]; }else if (_payNumber == 2){ name = [NSString stringWithFormat:@"向%@付款",nameStr]; } //富文本 NSMutableAttributedString *abs = [[NSMutableAttr…
富文本效果图: 富文本实现代码: UILabel *orderSureLabel = [Common lableFrame:CGRectZero title:] textColor:[UIColor colorWithHexString:@"#666666"]]; // orderSureLabel.backgroundColor = [UIColor yellowColor]; NSMutableAttributedString *orderSureStr = [Common set…
在上一篇中介绍了Text Kit的三种基本组件的关系并且简单的实现了怎么使用这三种基本组件,本片将深入的去使用这三种基本组件. NSTextStorage NSTextStorage是NSMutableAttributedString的子类,根据苹果官方文档描述是semiconcrete子类,因为NSTextStorage没有实现NSMutableAttributedString中的方法,所以说NSTextStorage应该是NSMutableAttributedString的类簇. 所要我们深…
本文转载至 http://blog.cnbang.net/tech/2729/ 上一篇介绍了DTCoreText怎样把HTML+CSS解析转换成NSAttributeString,本篇接着看看怎样把NSAttributeString渲染出来. CoreText 先简单介绍下CoreText,CoreText是iOS/OSX里的文字渲染引擎,在iOS/OSX上看到的所有文字在底层都是由CoreText去渲染. CoreText会把一行里连在一起相同属性的文字合在一起作为一个CTRun,每一行是一个…
/** *  计算文本的宽高 方法 2 * *  @param str     需要计算的文本 *  @param font    文本显示的字体 *  @param maxSize 文本显示的范围 * *  @return 文本占用的真实宽高 */ + (CGSize)sizeMethod2WithString:(NSString *)str font:(UIFont *)font maxSize:(CGSize)maxSize { NSDictionary *dict = @{NSFontA…
#import "ViewController.h" #define font 17 @interface ViewController ()<UITextViewDelegate> @property (weak, nonatomic) IBOutlet UITextView *textview; @property (assign, nonatomic) BOOL isSelect; @end @implementation ViewController - (void…
UILabel *valueL = [JAppViewTools getLabel:CGRectMake(JFWidth(15), CGRectGetMaxY(proName.frame)+JFWidth(12), KSCreenWidth-JFWidth(30), JFWidth(14)) :JTextFCMake(JFFont(15), rgb(28, 218, 159))]; valueL.text = [NSString stringWithFormat:@"%@ 金币 ¥%@"…
iOS使用NSMutableAttributedString实现富文本 在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求.之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦,而且很多UILabel的属性也不起作用了,效果都不理想.后来了解到NSMuttableAttstring(带属性的字符串),上面的一些需求都可以很简便的实现. 1.     实例化方法和使用方法 实例化方法: 使用字符串初始化…
最近经常遇到关于富文本的一些需求,特此封装了几个最常用的API分享给大家,但授之以鱼不如授之以渔,接下来会顺便谈谈NSAttributedString,确保你读了本篇文章能够自己封装关于富文本的API,本文封装API的示例Demo再此,拿去用吧!骚年们! 一.常用需求封装 需求:在我们日常开发中,某些句子中会有改变某些字颜色的需求,当然颜色一般而言就是为了着重强调,常为同一种颜色,所以下面代码是单纯改变一句话中的某些字的颜色 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15…
NSAttributedString基本知识点介绍 1.初始化方法 - (instancetype)initWithString:(NSString *)str; - (instancetype)initWithString:(NSString *)str attributes:(nullable NSDictionary<NSString *, id> *)attrs; - (instancetype)initWithAttributedString:(NSAttributedString…
1.富文本编辑器 1.1快速了解 借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的.所见即所得的页面.此处以tinymce为例,其它富文本编辑器的使用也是类似的. 在虚拟环境中安装包. pip install django-tinymce==2.6.0 安装完成后,可以使用在Admin管理中,也可以自定义表单使用. 示例 1)在test6/settings.py中为INSTALLED_APPS添加编辑器应用. INSTALLED_APPS = ( ... 'tinymce…
要加载html字符串,用人说,直接用webView啊!但是,有时候我们只需要显示2行文字,如此少的内容却要在复杂的UI排版中加入一个占用资源较多的webview,得不偿失.这里要说的是,我们其实可以用label即可加载html字符的,用富文本转一下html字符串即可. //创建UILabel _Test_Lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 200, 200)]; _Test_Lbl.backgroundColor =…
问题描述: 前端一个字段 <script id="editor" type="text/plain" name="content" style="width:600px;height:400px;border-radius: 3px;" >$content!}</script>向后台传该富文本值是 前端控制台打印内容如下<p>                       <span s…
1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] 设置字体 3.NSForegroundColorAttributeName :[UIColor redColor] 设置文字颜色 4.NSParagraphStyleAttributeName : paragraph 设置段落样式 5.NSMutableParagraphStyle *pa…
NSAttributedString NSAttributedString对象管理适用于字符串中单个字符或字符范围的字符串和关联的属性集(例如字体和字距).NSAttributedString对象的默认字体是Helvetica 12点,可能与平台的默认系统字体不同.因此,您可能希望创建适用于您的应用程序的非默认属性的新字符串.您还可以使用NSParagraphStyle类及其子类NSMutableParagraphStyle来封装NSAttributedString类使用的段落或标尺属性. 实例…
NSMutableAttributedString继承于NSAttributedString(带属性的字符串)能够简单快速实现富文本的效果;不多说直接上效果图和代码,通俗易懂: (一)效果图: (二)代码: UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(, , [[UIScreen mainScreen] bounds].size.width, )]; testLabel.textAlignment = NSTextA…
NSAttributedString 叫做富文本,是一种带有属性的字符串,通过它可以轻松的在一个字符串中表现出多种字体.字号.字体大小等各不相同的风格,还可以对段落进行格式化,一般都是对可变富文本(NSMutableAttributedString)进行一些操作 一.NSMutableAttributedString 类的部分常用方法 // 在一定范围中添加单个文字属性 // 参数1:字符属性名 // 参数2:属性值 // 参数3:范围 - (void)addAttribute:(NSStrin…
之前做项目时遇到一个问题: 使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结果在XCode中查遍其所有属性才发现,UITextView居然没有调整行间距的接口,于是忍住不心里抱怨了一下下. 但是问题还是要解决的,上网一查才发现,iOS不仅有富文本处理的功能,而且对于文字排版的处理能力那是相当的强大,看来我是孤陋寡闻了. 正题开始之前插播一点基础知识: 在iOS中或者Mac OS X中怎样才能…