Swift UI 行间带 space 的标签 + 动态线宽

Swift UI Label with space between lines + dynamic line width

目前,我有。 Current UI Label

但是,我希望它在行与行之间有 space,以便显示背景和每行具有动态宽度的背景颜色,类似于

Desired Label Look

我已经尝试将我的标签转换为文本视图,并使用自定义 class。这没有得到预期的结果。创建新单元格时,它使用以下代码。

cell.label.backgroundColor = UIColor.white
        return cell

那么,我怎样才能让文本在行与行之间得到 spaces,如图片中显示的背景,以及每行的宽度基于图片中的文本?

你确定你已经上传了你想要的图片吗?您的想要的标签外观 没有像您描述的那样跟随文本的背景颜色。

这是一个让你继续前进的例子:

let string = "Hello\n\nIs it me you're\n\nlooking for"
var attributedString = NSMutableAttributedString(string:string)

string.enumerateLines { (line, stuff) in
    guard let range = string.range(of: line) else { return }
    let nsRange = NSRange(range, in: line)
    attributedString.addAttribute(.backgroundColor,
                                  value: UIColor.red,
                                  range: nsRange)
}

在这里,我将字符串的每一行单独设置为红色,以获得您描述的效果。

我使用了双换行来实现分隔,因为我认为用一个 NSAttributedString.

简单地获得分隔线效果是不可能的

这导致:

.