文档章节

动态改变富文本字体的颜色

hungryBoy
 hungryBoy
发布于 2016/03/01 12:55
字数 467
阅读 511
收藏 2
点赞 1
评论 0

      在使用富文本时(NSMutableAttributedString),看到都是固定的一堆字符串,然后去改变其中某几个字符的颜色、大小等等,这些都还比较简单,但是很大情况下我们获得的数据并不是固定的,如果这时我们想让字体的颜色和大小随着后台返回数据的变化而变化,我们应该怎么做呢?思路一样很简单,就是获得我们想要改变的字符,然后去赋值颜色和大小即可,不过由于字符是动态的,在获取该字符的range时再采用传统的  NSRangeFromString()的方法已经获取不到该range,所以导致部分童靴明明设置了颜色和大小却并没有什么卵用而急得抓耳挠腮,那么解决办法来了,其实很简单,只需要这样做:

    //获得想要改变字体颜色的range   在这里 model.rule_action_desc是从后台获取到的数据,由于“获得”字体和它相同,所以就拼到了一块
    NSRange range1 = [integralString rangeOfString:[NSString stringWithFormat:@"%@获得",model.rule_action_desc] options:NSBackwardsSearch];

    这样就获得了该range,看效果图:

      再贴上我的富文本的代码:

//从后台获取的字符串,加上定制的“获得”
    NSString *integralString = [NSString stringWithFormat:@"%@获得%@",model.rule_action_desc,model.rule_score];
    //创建富文本
    NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:integralString];
    //设置字体大小
    [attributedStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13.0] range:NSMakeRange(0, attributedStr.string.length)];
    //分别获得想要改变字体颜色的range
    NSRange range1 = [integralString rangeOfString:[NSString stringWithFormat:@"%@获得",model.rule_action_desc] options:NSBackwardsSearch];
    NSRange range2 = [integralString rangeOfString:[NSString stringWithFormat:@"%@",model.rule_score] options:NSBackwardsSearch];
    //改变字体颜色
    [attributedStr addAttribute:NSForegroundColorAttributeName value:UIColorFromRGB(0x333333) range:range1];
    [attributedStr addAttribute:NSForegroundColorAttributeName value:UIColorFromRGB(0xff4c79) range:range2];
    UILabel *integralScoreLabel = [[UILabel alloc] initWithFrame:CGRectMake(timeLabel.frame.origin.x + timeLabel.frame.size.width + 30, timeLabel.frame.origin.y, 120, timeLabel.frame.size.height)];
    //设置label的attributedText
    integralScoreLabel.attributedText = attributedStr;


© 著作权归作者所有

共有 人打赏支持
hungryBoy

hungryBoy

粉丝 1
博文 40
码字总数 14345
作品 0
朝阳
程序员
使用Span实现各种酷炫效果

前一段时间一直在做富文本展示和文本处理,主要用到了Html.fromHtml()实现加载网页,但实现整段文本的某些特殊如个别文字的点击,改背景色、前景色等效果,就用到了我们今天要用到的Span这个...

安卓干货营 ⋅ 2017/12/07 ⋅ 0

windows下的富文本框--PMEdit

一、在开始之前首先吐槽一下,本人是一个独立开发者,在中国独立开发者就代表一个比较苦逼的行业,特别是对底层东西进行开发者,尤其本人研究方向是编译器、解析器基本上没有公司要,所以出来...

feirench ⋅ 2013/04/05 ⋅ 2

1.修改文字的样式

1.修改文字的样式 步骤如下: NSMutableAttributedString 创建一个富文本对象 调用富文本的对象方法 addAttribute:(NSString )value:(id) range:(NSRange) 来修改对应range范围中 attribute属...

Gong_xiao ⋅ 2016/03/07 ⋅ 0

富文本初探

NSMutableAttributedString *str2 = [[NSMutableAttributedString alloc] initWithString:@"abcdfuinABCDjalkdafjf;"]; [str2 beginEditing]; [str2 addAttribute:NSFontAttributeName value......

娜一片蓝色星海 ⋅ 2016/03/09 ⋅ 0

Text Kit学习(入门和进阶)

转自TracyYih的博客 更详细的内容可以参考官方文档 《Text Programming Guide for iOS》。 “Text Kit指的是UIKit框架中用于提供高质量排版服务的一些类和协议,它让程序能够存储,排版和显示...

hejunbinlan ⋅ 2015/08/14 ⋅ 0

Swift4.0学习笔记(二)——文本标签(UILabel)

1.首先介绍几个常用的几何元素 CGGeometry类定义几何元素的结构和操作几何元素的函数。 CGFloat: 浮点值的基本类型 CGPoint: 表示一个二维坐标系中的点 CGSize: 表示一个矩形的宽度和高度 CG...

古川不爱笑 ⋅ 2017/12/20 ⋅ 0

让别人1秒爱上你的化学结构图!

想让你的化学结构图吸引众人目光吗?想画出富有趣味性的化学图形吗?想让别人爱上你…的化学结构图形吗?拥有ChemDraw这款专业化学绘图工具,这些你都可以实现。如果绘制水平在差不多,那么你...

学术研究软件 ⋅ 2016/04/15 ⋅ 0

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

继承关系:UIView : UIResponder : NSObject ///UILabel 显示的文本只读,无法编辑,可以根据文字个数自动换行; ///UITextField 可编辑本文,但是无法换行,只能一行显示;当点击键盘上的r...

程序猿-樱木花道 ⋅ 2014/02/16 ⋅ 0

Android开发改变字体颜色方法

在TextView中添加文本时有时会改变一些文本字体的颜色,今天主要分享三种实现方法及相关优缺点。 1、通过html标签改变文本颜色 tv.setText(Html.fromHtml("我是danyijiangnan"));复制代码 点...

maiziedu ⋅ 2015/01/26 ⋅ 0

iOS 字符属性NSAttributedString描述

/* 字符属性 字符属性可以应用于 attributed string 的文本中。 NSString *const NSFontAttributeName;(字体) NSString *const NSParagraphStyleAttributeName;(段落) NSString *const NSFor......

沉恋 ⋅ 2015/04/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 22分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 33分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部