Как вставить символы в строку в определенном формате?

У меня есть общее свойство строки в следующем формате: 15555555555. Я пытаюсь отобразить его в следующем формате в UILabel :

(555)
555-5555

Я хотел бы избежать изменения размера UILabel или чего-либо, чтобы обернуть текст, потому что он отображает другой текст в зависимости от режима. Я пробовал использовать NSMutableString и myString.components(separatedBy:) между прочим, но мне не NSMutableString заставить код работать:

1-й метод:

 let phoneNumber = NSMutableString(string: self.phoneNumber) phoneNumber.remove(at: 0) phoneNumber.insert("-", at: 6) phoneNumber.insert(")", at: 3) phoneNumber.insert("(", at: 0) let finalString: String = phoneNumberArray.joined() 

2-й метод:

 var phoneNumberArray = self.phoneNumber.components(separatedBy: “”) phoneNumber.remove(at: 0) phoneNumber.insert("-", at: 6) phoneNumber.insert(")", at: 3) phoneNumber.insert("(", at: 0) let finalString: String = phoneNumberArray.joined() 

Все, что я пытаюсь сделать, это ошибка, и я не уверен, как заставить ее обернуть в середине, а не разбивать на две строки. Любая помощь будет принята с благодарностью. Заранее спасибо.

Обратите особое внимание на тип массива, поскольку вы ищете [String] , а не [Character] .

Я набрал пример, используя ваш код ниже. Это занимает номер телефона и делает каждую цифру элементом String в массиве. Таким образом, вы можете вставлять и удалять String символы. Кроме того, вы можете просто использовать Line Feed \n в String . Эта escape-последовательность означает новую строку, поэтому все после ее «обертывания»:

 var phoneNumberArray : [String] = self.phoneNumber.characters.map{String($0)} phoneNumberArray.remove(at:0) phoneNumberArray.insert("-", at: 6) phoneNumberArray.insert("\n", at: 3) phoneNumberArray.insert(")", at: 3) phoneNumberArray.insert("(", at: 0) let finalString: String = phoneNumberArray.joined() по var phoneNumberArray : [String] = self.phoneNumber.characters.map{String($0)} phoneNumberArray.remove(at:0) phoneNumberArray.insert("-", at: 6) phoneNumberArray.insert("\n", at: 3) phoneNumberArray.insert(")", at: 3) phoneNumberArray.insert("(", at: 0) let finalString: String = phoneNumberArray.joined() 

Этот код не проверен, но должен работать.

  • Как поместить значение ползунка в метку?
  • Вертикальный текст центра в UILabel
  • Анимация цвета текста UILabel в Swift
  • UILabel обрезает средние строки в многострочной метке
  • Элементы UITableview становятся жирными после прокрутки вверх
  • UIGestureRecognizer не распознает
  • Лучшее место для установки размера шрифта UILabel с помощью Auto Layout
  • Почему высота UILabel равна нулю, если не содержит никакого текста?
  • Как выровнять UILabel вправо?
  • Изображение UIButton справа от центрированного текста
  • Невозможно установить UILabel # preferredMaxLayoutWidth в layoutSubviews после того, как существуют ограничения
  • Давайте будем гением компьютера.