如何将 swift 中 UILabel 中的一个单词大写?

How can I capitalize one word in a UILabel in swift?

我正在尝试制作这样的动态 UILabel:

"I Love Watching The BBC"

由于标签是动态的,我不知道它的内容。 我可以单独留下文本,让用户定义他们想要的内容。我可以将整个字符串、每个单词的第一个字母或字符串中的所有单词大写。

问题是大写时,输入大写的单词会变成小写。

因此,在上面的示例中

BBC

变成

Bbc

我在网上找遍了,觉得没有办法做到这一点。

根据要求,到目前为止的代码:

cell.projectName?.text = projectNameArray[indexPath.row].localizedCapitalized

我建议您将此扩展添加到您的代码中。

extension String {
    func capitalizingFirstLetter() -> String {
        return prefix(1).capitalized + dropFirst()
    }

    mutating func capitalizeFirstLetter() {
        self = self.capitalizingFirstLetter()
    }
}

(表格Hacking With Swift)

也为 UILabel.text 属性 应用自定义函数,拆分字符串中的每个单词,并应用大写字母。

例如:

extension String {
    func capitalizeWords() -> String {
        self.split(separator: " ")
        .map({ String([=11=]).capitalizingFirstLetter() })
        .joined(separator: " ")
    }
}

我认为可以降低复杂性,但这只是一个工作提示 ;)