Как сделать текстовый диапазон подчеркнутым и полужирным в ** Swift 4 **, используя пользовательский шрифт OpenSans - PullRequest
0 голосов
/ 11 октября 2018

Это сводит меня с ума, я нигде не могу найти простой и понятный ответ о том, как сделать текстовый диапазон жирным шрифтом, подчеркнутый пользовательским шрифтом в Swift 4.

Каждая страница Iу go есть часть информации, но она отсылает меня по спирали.Я нахожу метод подчеркивания для Swift 3, не включающий пользовательский шрифт, следующий говорит, что использовать настраиваемую версию жирного шрифта в Swift 4 и т. Д., Но не включает подчеркивание.Очень расстраивает.

Итак.У меня есть этот текст

Сброс пароля письмо было отправлено.Не понял?Отправить еще раз

«Отправить еще раз» должно быть выделено жирным шрифтом и подчеркнуто.Это полная строка в одном UILabel.

Я уверен, что новый метод использует UIAttributedStringKey.

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

О, я сейчас на iOS 11, XCode 9.4.1.Я, вероятно, собираюсь обновить в ближайшие пару дней.

Заранее спасибо

Редактировать

Эй, дфд,Спасибо за ваши комментарии.Это в основном код, который у меня есть (бесполезный в swift 4.0, хотя я работаю в Swift 3.0 в значительной степени, насколько я помню, с использованием кода в прошлом.

Я должен где-то объявить шрифт, а также у меня нетЯ нашел код для жирного шрифта, но у меня есть код для диапазона и подчеркивания.

Приветствия

var text = self.completeText.text
let textRange = NSMakeRange(50, (text?.count)!)
let attributedText = NSMutableAttributedString(string: text!)
let underlineAttribute = [NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue]
attributedText.addAttribute(underlineAttribute)

* Окончательное редактирование *

Вот рабочий код.

let label = self.completeText
let labelString = self.completeText.text
let attributedText = NSMutableAttributedString(string: labelString!)
let rangeToUnderline = (labelString! as NSString).range(of: "Send again")
attributedText.addAttribute(NSAttributedStringKey.underlineStyle, value: NSUnderlineStyle.styleSingle.rawValue, range: rangeToUnderline)

Я собираюсь добавить пользовательский шрифт OpenSansBold с этими атрибутами, и он должен работать нормально.

Спасибо Адриан, спасибо за предложения всем остальным. Многоепризнателен!

PS Не думаю, что у кого-нибудь есть достойная ссылка на приписанные строки в Swift 4.1? Было бы неплохо.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

На этикетке Attributed Inspector изменить текст с Plain на Attributed.Затем вы можете отредактировать текст, добавить подчеркивание и даже изменить шрифт на жирный.

enter image description here

0 голосов
/ 11 октября 2018

Если вы не видите свой Open Sans, это отдельная проблема.Чтобы подчеркнуть это, вы должны использовать NSMutableAttributedString (не NSAttributedString).

Вот как вы должны подчеркнуть часть вашей строки:

let label = UILabel()
let labelString = "Didn’t get it? Send again"
let attributedText = NSMutableAttributedString(string: labelString)
let rangeToUnderline = (labelString as NSString).range(of: "Send again")
attributedText.addAttribute(NSAttributedString.Key.underlineStyle, value: NSUnderlineStyle.single.rawValue, range: rangeToUnderline)

Что касается выделения части строки, вот как вы это сделаете .Мне лень отследить имена шрифтов, проверить их и т. Д., Поэтому я оставлю это вам, чтобы заполнить жирный шрифт и логику переключения между жирным и не жирным шрифтом.

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