html 页面怎么加载富文本,UILabel加载html富文本

本文主要解决html标签之外文本属性设置

当APP里面有搜索的需求的时候,产品可能会要求关键字显示特殊颜色或者字体。其中一种可能性是服务器返回的数据是带有html标签的字符串,那么该怎么解决?当标签之外的其他字体也需要设置不同格式,又要怎么解决?

下面就来解决这个问题。

1.一个带有html标签的字符串

NSString * htmlString = @"红色字体其他字体 红色字体其他字体";

2.设置自己想要字体属性

NSDictionary *dic = @{NSForegroundColorAttributeName: [UIColor grayColor],

NSBackgroundColorAttributeName: [UIColor clearColor],

NSFontAttributeName: [UIFont systemFontOfSize:15]};

3.显示html格式的文本

NSMutableAttributedString * nameText = [[NSMutableAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes: nil error:nil];

第三步就是将html格式的文本转化成字符串

4.解决除了html标签之外的字体设置

void (^block)(NSDictionary*,NSRange,BOOL*) = ^(NSDictionary *attrs, NSRange range, BOOL *stop){

UIColor *color = attrs[NSForegroundColorAttributeName];

UIColor *colorRed = [UIColor redColor];

if (color && ![self isTheSameColor2:color anotherColor:colorRed]) {

[nameText addAttributes:dic range: range];

} else{

NSMutableDictionary *dicM = [attrs mutableCopy];

dicM[NSFontAttributeName ] = [UIFont systemFontOfSize:15];

[nameText addAttributes:dicM range: range];

}

};

[nameText enumerateAttributesInRange: NSMakeRange(0, nameText.length) options: NSAttributedStringEnumerationReverse usingBlock: block];

第四步就是解决其他文本属性值的改变,这里只做了通过颜色来区别是html标签文本还是其他文本,标签里面是redColor,那么这里的判断条件自然就是redColor,是通过isTheSameColor2: anotherColor:这个方法进行判断

5.判断方法的实现

- (BOOL) isTheSameColor2:(UIColor*)color1 anotherColor:(UIColor*)color2 {

if ([color1 red] == [color2 red] && [color1 green] == [color2 green] &&

[color1 blue] == [color2 blue] &&[color1 alpha] == [color2 alpha] ) {

return YES;

} else {

return NO;

}

}

6.写一个UIColor的分类

#import "UIColor+RGB.h"

分类里面有四个属性

@interface UIColor (RGB)

@property (nonatomic, readonly) CGFloat red;

@property (nonatomic, readonly) CGFloat green;

@property (nonatomic, readonly) CGFloat blue;

@property (nonatomic, readonly) CGFloat alpha;

@end

在 .m 文件中实现

- (CGFloat)red {

CGFloat r = 0, g, b, a;

[self getRed:&r green:&g blue:&b alpha:&a];

return r;

}

- (CGFloat)green {

CGFloat r, g = 0, b, a;

[self getRed:&r green:&g blue:&b alpha:&a];

return g;

}

- (CGFloat)blue {

CGFloat r, g, b = 0, a;

[self getRed:&r green:&g blue:&b alpha:&a];

return b;

}

- (CGFloat)alpha {

return CGColorGetAlpha(self.CGColor);

}

这个分类的作用在于比对颜色值,便于在第五步里面进行颜色的判断

结果显示

931b9200b101

展示结果.png

但是如果只执行到第三步,那么红色字体之外的颜色就是黑色

931b9200b101

展示结果2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 打印皮卡丘_用python打印你的宠物小精灵吧

我们来通过一个有趣的例子开始编写我们的第一个python代码。本文涉及的python基础语法为:print输出函数,赋值,字符串print()print()是python的一个内置函数,用于打印输出,是最常见的一个函数之一。有些朋友可能对于打印…

最大子阵列

在一个数组中找出和最大的连续几个数。(至少包含一个数) 例如: 数组A[] [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6. 输入格式 第一行输入一个不超过1000的整数n。 第二行输入n个整数A[i]。…

html嵌入原始数据,如何用html和javascript显示原始图像数据?

我有一个ajax应用程序,PHP端将来自摄像头的未编码的原始图像数据发送到客户端javascript端.我想使用img或canvas标签通过html和javascript显示图像.图像数据是32 * 32无符号字符.我想做,无论达到我的目标(编码或其他所有),但我想在客户端做,因为我无法处理服务器端的任何其他操…

三值排序

排序是一种很频繁的计算任务。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。 写一个程序计算出,计算出的一个包括1、2、3三种值的数字序列&#…

imgaug批量椒盐噪声 python_python图像扩增-imgaug

# encodingutf-8import osimport imageioimport randomimport numpy as npimport imgaug as iaimport concurrent.futuresfrom imgaug import augmenters as iaaimport matplotlib.pyplot as pltfrom argparse import ArgumentParseria.seed(4)# %matplotlib inline# 参考 http…

express html文件接收路由参数,express 获取post 请求参数

在 Express 中没有内置获取表单 POST 请求体的 API , 我们需要添加第三方插件库安装:npm install --save body-parser配置:var bodyParser require(body-parser)//配置 body-parser 中间件 (插件, 专门用来解析表单 POST 请求)// parse application/x-www-form-urlencodedapp.…

深度优先搜索重要模板

深度优先搜索(Depth-First-Search) 从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不 了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”。 其实称为“远度优先搜索”…

360浏览器查看html文件在哪里,360浏览器8菜单栏怎么弄出来?如何查看网站源代码...

今天想查看一个页面的源代码,没想到这个页面竟然禁止了鼠标右键功能,所以无法通过鼠标右键选择“查看源代码”来查看。然后就想通过 360 浏览器的“查看源代码”按钮进行查看,没想到找了半天都找不到这个按钮,最后只能通过查看源代…

tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解

一、窗口机制的分类在TCP协议当中窗口机制分为两种:1.固定的窗口大小2.滑动窗口二、固定窗口存在的问题如下图所示:我们假设这个固定窗口的大小为1,也就是每次只能发送一个数据,只有接收方对这个数据进行了确认后才能发送第二个数…

1-1.HTML、CSS、JavaScript语言在web前端开发中的作用

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。 CSS样式是表现。 就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为…

判断html()中有长度,VBS 字符串长度判断的问题

对于给你一个字符串你应该怎样判断他的字符串长度,试举一些典型的例子C语言——字符串长度的计算方法提示:(1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以&#xff0c…

maxvalue mysql自动分区_创建mysql表分区的方法

创建mysql表分区的方法我来给大家介绍一下mysql表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册。表分区是最近才知道的哦,以前自己做都是分表来实现上亿级别的数据了&…

html概述

什么是html? HTML(Hyper Text Markup Language)超文本标记语言。 标记语言就是让文本展示更丰富,更美观的一种语言。比如说文本加粗 更换颜色 斜体 html这种标记语言就是为了让网页展示更丰富,更美观的一种语言 开发…

计算机专业后悔么,王言匀

《中华独特疗法大成》分方法和治疗两篇。方法篇依据用药与否,分为药物疗法和非药物疗法两章,药物疗法按照给药途径分为内服法和外用法两节;非药物疗法根据施术手段分为针灸、推拿、气功及其他4节。这些章节介绍了273种治疗方法的基本内容、适…

python制作网页样式与布局_Python开发【第十二篇】:CSS装饰页面

CSS称为层叠样式表,是Cascading Style Sheets的缩写。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS引入方式:行内式:对标签元素添加style属性,在style属性中设置CSS样式&#…

html标签的用途

语义化。那么什么叫做语义化呢,说的通俗点就是:明白每个标签的用途(在什么情况下使用此标签合理) 比如,网页上的文章的标题就可以用标题标签,网页上的各个栏目的栏目名称也可以使用标题标签。文章中内容的…

应用计算机散热的原理是什么,水冷散热器是什么原理?水冷可以带给机箱多大的散热作用?...

用户若是CPU安装了水冷散热器,就可以利用水快速导热和散热的特性加强主机硬件的散热效果,和普通风扇的散热效果相比,水冷可以更加有效的降低硬件温度和热量散发速度。阅读下文了解水冷散热器的原理和作用。CPU水冷散热器是指使用液体在泵的带…

markdown改字体和背景颜色(html)

背景色是 1 背景色2 BlueViolet 背景色是orange 字体的设置我是黑体字 我是微软雅黑 我是华文彩云 color#0099ff size72 face”黑体” color#00ffff colorgray Size&#xff1a;规定文本的尺寸大小。可能的值&#xff1a;从 1 到 7 的数字。浏览器默认值是 3 <tabl…

计算机展望未来网络形态,在学习中展望未来

域。虚拟现实技术、模拟技术、流媒体以及网络技术使我们的教育达到了前所未有的地步。利用技术&#xff0c;我们可以把浩瀚的宇宙、微小的分子、原子世界展现在学生面前&#xff1b;利用技术&#xff0c;学生不用走出教室&#xff0c;就可以遨游五洲&#xff0c;跨越四海。我们…

批量画同心不同半径圆lisp_cad绘制同心圆lisp二次开发源代码

简介&#xff1a;本资源为autocad同心圆lisp二次开发源代码下载,该代码文件可以直接在autocad中加载,执行,可以实现的功能为绘制多个间距一定的同心圆源代码&#xff1a;(Defun C:TXY ()(SetQ cp (GetPoint "圆心&#xff1a;")cr (GetDist cp "基础半径&#x…