Я встраиваю изображение в NSAttributedString, и я хочу, чтобы iOS рассматривала его как символ, являющийся частью слова перед ним, чтобы он не разбивался на отдельную строку. Я где-то читал, что это должно быть поведение по умолчанию, но, хоть убей, я не могу заставить его работать. Вот мой код (я вставляю эту атрибутивную строку как заголовок кнопки):
var title = "This is an example string. Test testtt"
let titleTextString = NSMutableAttributedString(string: title)
let imageAttachment = NSTextAttachment()
imageAttachment.image = UIImage(named:"myIcon")
imageAttachment.bounds = CGRect(x: 0, y: 1.0, width: 14, height: 6)
let imageAttachmentString = NSMutableAttributedString(attachment: imageAttachment)
titleTextString.append(imageAttachmentString)
button.setAttributedTitle(titleTextString, for: .normal)
Вот изображение того, как это выглядит:
Как видите, в конце строки нет пробелов. Я пытаюсь заставить метку рассматривать вложение текста как обычный непробельный символ и, таким образом, часть слова «testtt», что затем приведет к тому, что «testtt» будет переноситься по словам (в противном случае слова правильно переносятся по словам , и я установил перенос слов как для метки, так и для стиля абзаца NSAttributedString).
Этот вопрос усложняется тем, что я обнаружил существование неразрывного устройства, которое решает проблему, но заставляет другие части струны излишне ломаться. Если я добавлю неразрывный пробел в конец строки:
var title = "Это пример строки. Test testtt" + "\ u {A0}"
Затем я получаю правильное поведение при разрыве, но по какой-то причине предыдущее слово также без надобности сломано:
Кто-нибудь знает, как заставить это работать правильно (т.е. считать изображение любой другой буквой, а не пробелом?)