一尘不染

在Swift中将UILabel变为粗体

swift

我有一个UILabel通过编程方式制作的:

var label = UILabel()

然后,我为标签声明了一些样式,包括字体,例如:

label.frame = CGRect(x: 20, y: myHeaderView.frame.height / 2, width: 300, height: 30)
label.font = UIFont(name: "Typo GeoSlab Regular Demo", size: 15)
label.textColor = UIColor(hue: 0/360, saturation: 0/100, brightness: 91/100, alpha: 1)

标签的第一部分将始终显示为:"Filter:"然后是字符串的另一部分,例如“ Most Popular”

我希望过滤器一词以粗体显示,因此整个过程看起来像:

筛选: 最受欢迎

我想以最简单的方法来创建这种效果。我一直在互联网上寻找如何实现这一目标的方法,而且有很多方法,有些方法看起来像是代码页。而且大多数似乎在Objective-
C中。我想要在Swift中:)

我不知道我在正确的路线上,但这NSRange可以帮助实现目标吗?提前致谢

更新资料

我使用一系列if语句来更改我的label变量。如:

if indexArray == 1 {

    label.text = "Filter: Film name"

} else if indexArray == 2 {

    label.text = "Filter: Most popular"

} else if indexArray == 3 {

    label.text = "Filter: Star rating"

}

阅读 1004

收藏
2020-07-07

共1个答案

一尘不染

您将需要使用attributedString它来设置字符串等的样式。可以通过具有两种样式(一种是普通样式,一种是粗体样式),然后将它们附加在一起来完成此操作:

let boldText = "Filter:"
let attrs = [NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 15)]
let attributedString = NSMutableAttributedString(string:boldText, attributes:attrs)

let normalText = "Hi am normal"
let normalString = NSMutableAttributedString(string:normalText)

attributedString.append(normalString)

要将其分配给标签时:

label.attributedText = attributedString
2020-07-07