gpt4 book ai didi

iphone - NSAttributedString 在不改变 pointSize 的情况下将样式更改为粗体?

转载 作者:IT王子 更新时间:2023-10-29 08:20:05 25 4
gpt4 key购买 nike

我正在深入研究 iOS 上的 NSAttributedString。我有一个模型,它返回一个人的名字和姓氏作为 NSAttributesString。 (我不知道在模型中处理属性字符串是否是个好主意!?)我希望名字可以正常打印,而姓氏应该以粗体打印。我不想要的是设置文本大小。到目前为止我发现的是:

- (NSAttributedString*)attributedName {
NSMutableAttributedString* name = [[NSMutableAttributedString alloc] initWithString:self.name];
[name setAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:[UIFont systemFontSize]]} range:[self.name rangeOfString:self.lastname]];
return name;
}

但是,这当然会覆盖姓氏的字体大小,这在 UITableViewCell 中提供了一个非常有趣的外观,其中名字将以单元格的标签和姓氏将打印得非常小。

有什么办法可以实现我想要的吗?

感谢您的帮助!

最佳答案

这是一个 Swift 扩展,它使文本变粗,同时保留当前字体属性(和文本大小)。

public extension UILabel {

/// Makes the text bold.
public func makeBold() {
//get the UILabel's fontDescriptor
let desc = self.font.fontDescriptor.withSymbolicTraits(.traitBold)
//Setting size to '0.0' will preserve the textSize
self.font = UIFont(descriptor: desc, size: 0.0)
}

}

关于iphone - NSAttributedString 在不改变 pointSize 的情况下将样式更改为粗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com