通过xib实现富文本

2021-06-14  本文已影响0人  今天写明天改

介绍

富文本,也就是NSMutableAttributedString 和NSAttributedString,大家使用的时候都不陌生,今天想介绍的是富文本的xib实现。

常见场景

假如设计出了一个彩虹的图案🌈,需要让你写一给它写个介绍,那自然跑不了赤橙黄绿青蓝紫这几个颜色,但是,设计说,每个字的颜色都要和字的意思对应,自然,最简单的办法是三板斧 初始化、添加、赋值。

例如

var text = NSMutableAttributedString(string: "赤", attributes: [NSAttributedString.Key.foregroundColor : UIColor.red])  

let orangeAttributedText = NSAttributedString(string: "橙", attributes: [NSAttributedString.Key.foregroundColor : UIColor.orange])

text.append(orangeAttributedText)

然后重复这个过程5次,把各个颜色都加进去,最后

label.attributedText = text

但是 这样会导致我们写14行的代码,如果设计需要特定的字号,那么我们还需要加7次属性。

这自然不是我们所愿意看见的,于是有了下面介绍的办法

解决方法

 i. 首先选中控件,在attributes Inspector面板选中title或者text区域

像这样

attributes Inspector

 ii. 然后点击fonts的图标,打开fonts的面板可以根据需要设置全部文本的字号

fonts图标和面板

 iii. 因为文本需要不同的属性,这个时候可以在attributes Inspector面板中选择要添加属性的文本,然后选择需要的属性,然后对每段需要添加属性的文本都做同样操作,注意一定要选中文本才能生效。

如下图

给部分文本添加属性

大家可以在这里看到,富文本的样式例如背景色和前景色,等各个属性都可以在这里直接设置,而且各个文本的样式独立。基本能满足大家的需求,

另外大家也可以看到,缺点在于动态配置的文本是不可以直接在xib设置的。有动态配置的需求还是需要靠代码

上一篇下一篇

猜你喜欢

热点阅读