Как я могу быстро использовать одно слово в UILabel? - PullRequest
1 голос
/ 04 февраля 2020

Я пытаюсь создать динамический c UILabel, как это:

"Я люблю смотреть BB C"

Поскольку ярлык является динамическим c, я понятия не имею о его содержании. Я могу оставить текст в покое и позволить пользователю определить, что он хочет. Я могу использовать всю строку, первую букву каждого слова или все слова в строке.

Проблема в том, что при вводе заглавных букв слова, которые вводятся в верхнем регистре, становятся строчными.

Так, в приведенном выше примере

BB C

становится

Bb c

Я искал по всей сети, и не думаю, что есть способ сделать это.

По запросу, код на данный момент:

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

1 Ответ

1 голос
/ 05 февраля 2020

Я предлагаю вам добавить это расширение в ваш код.

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

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

(Форма Взлом с помощью Swift )

Также для свойства UILabel.text примените a Пользовательская функция, которая разбивает каждое слово на строку и применяет заглавную букву.

Примером может быть:

extension String {
    func capitalizeWords() -> String {
        self.split(separator: " ")
        .map({ String($0).capitalizingFirstLetter() })
        .joined(separator: " ")
    }
}

Думаю, сложность можно уменьшить, но это всего лишь рабочий совет ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...