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
.
简单地获得分隔线效果是不可能的
这导致:
.
目前,我有。 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
.
这导致:
.