概述

富文本处理在项目中使用率越来越高.比如像颜色改变突出, 大字号突出处理, 下划线处理, 中划线(删除线)处理等等

详细

代码下载:http://www.demodashi.com/demo/10741.html

目前富文本处理在项目中使用率越来越高.比如像颜色改变突出, 大字号突出处理, 下划线处理, 中划线(删除线)处理等等.

一、相关属性

  • 1. NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号12

  • 2. NSForegroundColorAttributeName 设置字体颜色,取值为 UIColor对象,默认值为黑色

  • 3. NSBackgroundColorAttributeName 设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明

  • 4. NSLigatureAttributeName 设置连体属性,取值为NSNumber 对象(整数),0 表示没有连体字符,1 表示使用默认的连体字符

  • 5. NSKernAttributeName 设定字符间距,取值为 NSNumber 对象(整数),正值间距加宽,负值间距变窄

  • 6. NSStrikethroughStyleAttributeName 设置删除线,取值为 NSNumber 对象(整数)

  • 7. NSStrikethroughColorAttributeName 设置删除线颜色,取值为 UIColor 对象,默认值为黑色

  • 8. NSUnderlineStyleAttributeName 设置下划线,取值为 NSNumber 对象(整数),枚举常量 NSUnderlineStyle中的值,与删除线类似NSUnderlineColorAttributeName 设置下划线颜色,取值为 UIColor 对象,默认值为黑色

  • 9. NSStrokeWidthAttributeName 设置笔画宽度,取值为 NSNumber 对象(整数),负值填充效果,正值中空效果

  • 10. NSStrokeColorAttributeName 填充部分颜色,不是字体颜色,取值为 UIColor 对象NSShadowAttributeName 设置阴影属性,取值为 NSShadow 对象

  • 11. NSTextEffectAttributeName 设置文本特殊效果,取值为 NSString 对象,目前只有图版印刷效果可用:

  • 12. NSBaselineOffsetAttributeName 设置基线偏移值,取值为 NSNumber (float),正值上偏,负值下偏

  • 13. NSObliquenessAttributeName 设置字形倾斜度,取值为 NSNumber (float),正值右倾,负值左倾

  • 14. NSExpansionAttributeName 设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本

  • 15. NSWritingDirectionAttributeName 设置文字书写方向,从左向右书写或者从右向左书写

  • 16. NSVerticalGlyphFormAttributeName 设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本

  • 17. NSLinkAttributeName 设置链接属性,点击后调用浏览器打开指定URL地址

  • 18. NSAttachmentAttributeName 设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排 // NSTextAttachment, default nil

  • 19. NSParagraphStyleAttributeName 设置文本段落排版格式,取值为 NSParagraphStyle 对象

二、程序实现

现举四个小栗子:

1、颜色字号突出区别展现

 NSString *str = [NSString stringWithFormat:@"用淘学金支付7.5折优惠"];NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:str];NSDictionary *dic = @{NSFontAttributeName : [UIFont systemFontOfSize:14],NSForegroundColorAttributeName : [UIColor greenColor]};[attStr addAttributes:dic range:NSMakeRange(0, str.length)];dic = @{NSFontAttributeName : [UIFont systemFontOfSize:18],NSForegroundColorAttributeName : [UIColor redColor]};[attStr addAttributes:dic range:[str rangeOfString:@"7.5折"]];

2、下划线及颜色突出处理

  NSString *title = @"抱歉, 您还没有充返卡, 您可以升级VIP获取 VIP特权介绍 或者参加拆红包活动获取";//设置按钮文字有下划线及其颜色NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:title];// 查找字符串里的VIP特权介绍NSRange vipRange = [title rangeOfString:@"VIP特权介绍"];// 添加下划线[str addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:vipRange];[vipButton setAttributedTitle:str forState:UIControlStateNormal];//文字颜色的区分[str addAttribute:NSForegroundColorAttributeNamevalue:[UIColor redColor]range:vipRange];vipButton.titleLabel.numberOfLines = 0;vipButton.titleLabel.textAlignment = NSTextAlignmentLeft;vipButton.titleLabel.textColor = [UIColor blueColor];vipButton.titleLabel.font = [UIFont systemFontOfSize:14];[vipButton addTarget:self action:@selector(vipTap) forControlEvents:UIControlEventTouchUpInside];[vipView addSubview:vipButton];

3、中划删除线处理

- (NSMutableAttributedString *)setupAttriLabelWithLinethrough:(NSString *)title {NSString *textStr = [NSString stringWithFormat:@" ¥%@", title];// 添加中划线NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName : [NSNumber numberWithInteger:NSUnderlineStyleSingle]};NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:textStr attributes:attribtDic];return attribtStr;
}

4、下划线突出处理

- (NSMutableAttributedString *)setupAttriLabelWithUnderline:(NSString *)title {NSString *textStr = [NSString stringWithFormat:@"¥%@ / ", title];// 下划线NSDictionary *attribtDic = @{NSUnderlineStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:textStr attributes:attribtDic];return attribtStr;
}

5.标题与值分行

/*** label 的富文本布局 标题与值分行** titleStr 标题* ValueStr 值*/
- (NSMutableAttributedString *)setupAttriLabelWithTitleStr:(NSString *)titleStr ValueStr:(NSString *)valueStr {NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@\n%@", titleStr, valueStr]];[string addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(titleStr.length+1, valueStr.length)];[string addAttribute:NSForegroundColorAttributeName value:ZLColor(113, 111, 118) range:NSMakeRange(titleStr.length+1, valueStr.length)];NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];paragraphStyle.alignment = NSTextAlignmentCenter; // 居中paragraphStyle.lineSpacing = 0; // 调整行间距[string addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [string length])];return string;
}

三、其他补充

1、压缩文件截图

界面性问题可以根据自己项目需求调整即可, 具体可参考代码, 项目则能够直接运行!

代码下载:http://www.demodashi.com/demo/10741.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

富文本处理NSMutableAttributedString相关推荐

  1. Label--关于Label富文本

    一.label的富文本属性 label.attributedText 需要注意一点:如果一个label设置了富文本这个属性,那它其他的设置都将失效. 二.富文本对象的创建 //初始化富文本对象的方法一 ...

  2. 富文本的使用 NSMutableAttributedString

    文章内容大纲 1.NSMutableAttributedString的基本使用 2.NSMutableAttributedString的简易封装 3.使用开源代码GOBMarkupPaser处理富文本 ...

  3. iOS开发之 - 好玩的富文本

    周末闲着没事,就想着不如把那些容易遗忘的知识点整理一下,一来可以让有需要的朋友少走弯路,二来自己以后再忘记的时候也可以回头看看......但 iOS 中小冷易忘的知识点实在太多了,不知道该从哪里开始整 ...

  4. 特殊标记字段(#)实时富文本显示

    我们知道微博可以在编辑中添加话题,比如将两个"#"号之间的字体变为蓝色等,最近项目当中需要用到这样的功能,就考虑了一下如何实现这个功能~ 首先说一下我们的要求: 两个"# ...

  5. UILabel 使用 标签,圆角,富文本

    2019独角兽企业重金招聘Python工程师标准>>> 继承关系:UIView : UIResponder : NSObject ///UILabel 显示的文本只读,无法编辑,可以 ...

  6. iOS之富文本(二)

    之前做项目时遇到一个问题: 使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结果在XCode中查 ...

  7. iOS 富文本风格NSMutableParagraphStyle、定制UITextView插入图片和定制复制

    问题一 开发过程中,经常会遇到动态计算行高的问题, - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOption ...

  8. iOS - 富文本AttributedString

    最近项目中用到了图文混排,所以就研究了一下iOS中的富文本,打算把研究的结果分享一下,也是对自己学习的一个总结. 在iOS中或者Mac OS X中怎样才能将一个字符串绘制到屏幕上呢? 简单来说,是通过 ...

  9. UILabel添加图片之富文本的简单应用

    若想对UILabel添加图片,那么就需要使用NSMutableAttributedString来定义 先定义一个普通的label UILabel *lab = [[UILabel alloc]init ...

最新文章

  1. phpstudy更改但是php版本没变
  2. 6个变态的C语言写的Hello World
  3. 屏幕最左上角的 飞秋官方下载 字符
  4. svn回退到具体的版本
  5. 【Java】springboot学习笔记二
  6. jmeter持续时间循环控制器_不写代码实现条件循环?只用Jmeter就能实现
  7. CSS缩小窗口时,背景图出现右侧空白
  8. java jmx 监控_利用VisualVm和JMX远程监控Java进程
  9. Java-JavaMail邮件开发(1)Java Mail
  10. Cisco思科交换机路由器命令快速入门
  11. idea导出数据库的可执行sql文件
  12. 调查问卷题目设计注意事项
  13. 机房搬迁实施规划方案
  14. 美国医生谈医疗创业公司的五大成功要素:简化流程、绩效工资、授权
  15. phpexcel 数字格式_php excel 设置单元格格式为文本格式
  16. java毕业设计校园快递柜存取件系统(附源码、数据库)
  17. 屏蔽掉Linux上运行Spark(Python版)时的多余信息(INFO)
  18. [项目管理-18]:项目实施中,项目经理、产品经理、运营经理、设计经理、技术经理、工程经理不同角色的比较
  19. 一、flink基础之数据读取
  20. 土木工程结构力学————虚功原理

热门文章

  1. 12. GD32F103C8T6入门教程-定时器-3路pwm输出
  2. keil MDK中如何生成*.bin格式的文件
  3. 秦九韶算法递推公式_如何教会女友递归算法?
  4. 大图社区搜索的调查综述(二)——预备知识
  5. 菜鸟学习笔记:Java提升篇12(Java动态性2——动态编译、javassist字节码操作)
  6. 【重难点】【JUC 05】线程池核心设计与实现、线程池使用了什么设计模式、要你设计的话,如何实现一个线程池
  7. iOS多线程编程的知识梳理
  8. 软件开发工具--自考2018年10月程序填空
  9. 七、gradle依赖管理
  10. [转]pycharm的一些快捷键