Skip to content

3.4_富文本NSAttributedString使用

什么是富文本?

富文本(NSAttributedString)是 UIKit 中一个非常强大的概念,它允许你在同一段文本中应用多种不同的样式和属性。想象一下,你可以在一个句子中同时拥有粗体、斜体、不同颜色和字体的文字!这极大地增强了文本的视觉表现力。✨

NSAttributedString 的核心优势

使用 NSAttributedString,你可以轻松实现复杂的文本布局,而无需创建多个 UILabelUITextView。这不仅简化了代码,还提高了性能。例如,一个包含多种样式的段落,用富文本只需一个控件就能搞定。

创建富文本字符串

创建富文本字符串主要有两种方式。你可以从一个普通字符串开始,然后添加属性,或者直接用属性字典初始化。这两种方法都非常灵活,可以满足你的不同需求。

方法一:从普通字符串添加属性

swift
let originalString = "你好,世界!"
let attributedString = NSMutableAttributedString(string: originalString)

// 定义属性
let boldFont = UIFont.boldSystemFont(ofSize: 20)
let textColor = UIColor.red
let range = NSRange(location: 0, length: 2) // "你好"

// 添加属性
attributedString.addAttribute(.font, value: boldFont, range: range)
attributedString.addAttribute(.foregroundColor, value: textColor, range: range)

// 应用到UILabel
let label = UILabel()
label.attributedText = attributedString

这段代码展示了如何将“你好”设置为粗体红色。你可以根据需要调整 range 来选择不同的文本部分。

方法二:使用属性字典初始化

swift
let attributes: [NSAttributedString.Key: Any] = [
    .font: UIFont.systemFont(ofSize: 24),
    .foregroundColor: UIColor.blue
]
let attributedString = NSAttributedString(string: "这是一个蓝色的文本。", attributes: attributes)

let textView = UITextView()
textView.attributedText = attributedString

这种方法在创建时就指定了整个字符串的属性。它非常适合当你需要为整个文本应用统一风格时。

常用富文本属性

NSAttributedString.Key 提供了丰富的属性,让你能够精细控制文本的每一个细节。以下是一些最常用的属性:

  • .font: 设置字体和字号。
  • .foregroundColor: 设置文本颜色。
  • .backgroundColor: 设置文本背景颜色。
  • .paragraphStyle: 控制段落样式,如行间距、对齐方式等。
  • .underlineStyle: 添加下划线。
  • .strikethroughStyle: 添加删除线。
  • .kern: 调整字符间距。
  • .link: 添加超链接。

这些属性的组合使用,能让你创造出无限可能!🚀

实际应用场景

富文本在 iOS 开发中无处不在。例如:

  1. 新闻应用: 标题、正文、引用等不同部分需要不同的样式。
  2. 聊天应用: 消息中的表情符号、链接、@提及等。
  3. 富文本编辑器: 允许用户自定义文本样式。
  4. 广告横幅: 突出显示促销信息或关键短语。

掌握 NSAttributedString 将极大地提升你的 UI 表现力,让你的应用界面更加生动和专业。继续探索,你会发现它的更多魅力!🌟

本站使用 VitePress 制作