You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何指定标签标记文本?Swift中为Label文本添加删除线的方法

嘿,针对你的两个问题,我来给你详细解答:

一、关于指定标签标记目标文本

在Swift里,我们没有HTML那种直接用标签包裹文本的语法,但可以通过NSAttributedString(可变版本是NSMutableAttributedString)来实现类似“标记特定文本”的效果——本质就是给指定范围的文本设置专属样式(比如颜色、下划线、删除线等),这和HTML用标签标记文本的作用是一样的。

举个简单例子,比如给字符串里的某几个字设置红色高亮:

let originalText = "这是一段需要标记的文本"
let attributedText = NSMutableAttributedString(string: originalText)
// 给“需要标记”这4个字设置红色
attributedText.addAttribute(
    .foregroundColor,
    value: UIColor.red,
    range: NSRange(location: 4, length: 4)
)
yourLabel.attributedText = attributedText

只要调整range参数和对应的属性,就能精准“标记”任意你想要的文本片段。

二、给Label添加删除线效果(对应HTML的<s>标签)

这个需求用NSAttributedString就能轻松实现,分两种场景:

1. 给整个Label文本加删除线

直接创建带删除线属性的富文本,赋值给Label的attributedText即可:

let strikeText = "这段文本要添加删除线"
let attributedString = NSAttributedString(
    string: strikeText,
    attributes: [
        NSAttributedString.Key.strikethroughStyle: NSUnderlineStyle.single.rawValue
    ]
)
yourLabel.attributedText = attributedString

这里的NSUnderlineStyle.single是单条删除线,你还可以用.thick(粗线)或者.double(双线)来调整样式。

2. 给部分文本加删除线

如果只需要给文本中的某一段加删除线,就用可变富文本指定范围:

let originalText = "只有这段要加删除线,其他内容不变"
let attributedText = NSMutableAttributedString(string: originalText)
// 给“这段要加删除线”设置删除线(位置从第2个字符开始,长度7)
attributedText.addAttribute(
    .strikethroughStyle,
    value: NSUnderlineStyle.single.rawValue,
    range: NSRange(location: 2, length: 7)
)
yourLabel.attributedText = attributedText

额外小技巧:如果想给删除线设置颜色,可以加上strikethroughColor属性:

let coloredStrikeText = "带红色删除线的文本"
let attributedString = NSAttributedString(
    string: coloredStrikeText,
    attributes: [
        .strikethroughStyle: NSUnderlineStyle.single.rawValue,
        .strikethroughColor: UIColor.red
    ]
)

内容的提问来源于stack exchange,提问作者user9203791

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:17:16