我有一个UILabel通过编程方式制作的:
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”
"Filter:"
我希望过滤器一词以粗体显示,因此整个过程看起来像:
筛选: 最受欢迎
我想以最简单的方法来创建这种效果。我一直在互联网上寻找如何实现这一目标的方法,而且有很多方法,有些方法看起来像是代码页。而且大多数似乎在Objective- C中。我想要在Swift中:)
我不知道我在正确的路线上,但这NSRange可以帮助实现目标吗?提前致谢
NSRange
更新资料
我使用一系列if语句来更改我的label变量。如:
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" }
您将需要使用attributedString它来设置字符串等的样式。可以通过具有两种样式(一种是普通样式,一种是粗体样式),然后将它们附加在一起来完成此操作:
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