gpt4 book ai didi

ios - 在 iOS swift 中翻译属性文本时出现问题?

转载 作者:行者123 更新时间:2023-11-28 14:54:52 26 4
gpt4 key购买 nike

我有一个 UIButtonUIButton 添加到 tableview 单元格下。现在我想让它下划线。因此,如果我以编程方式创建文本属性,那么它将为每个单元格创建一个新的 MutableAttributedString 对象,这将增加内存。如果从 Storyboard创建属性字符串,那么它会翻译成另一种语言。那么请告诉我如何实现它?

代码

 let attributedString = NSMutableAttributedString(string: orignalString, attributes: attributes)
//some code
self.labelProgress.attributedText = attributedString

最佳答案

使字符串加下划线的唯一方法是使用属性字符串。因此,如果您有带有此类字符串的表格单元格,则每次更改表格单元格时都必须创建一个新的属性字符串。即使是 Storyboard也必须为每次更新创建新的属性字符串。但我不明白这怎么会导致显着的内存使用。

无论如何,如果您想本地化属性字符串,您必须自己以编程方式完成此操作。通常,我更喜欢对所有 UI 元素使用此方法,因为它可以让您进行更多控制。您可以使用以下扩展来简化整个过程:

extension String {

var localized: String {
return NSLocalizedString(self, comment: "")
}

}

然后您可以将翻译定义为全局常量,例如:

class Texts {

class MyViewController {

static let buttonTitle = "Edit".localized

}

}

然后设置按钮的文本:

self.button.setAttributedTitle(
NSMutableAttributedString(string: Texts.MyViewController.buttonTitle,
attributes: [NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue]),
for: UIControlState()
)

关于ios - 在 iOS swift 中翻译属性文本时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489521/

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