UITextView правильно выделить слова - PullRequest
0 голосов
/ 14 сентября 2018

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

override func draw(_ rect: CGRect) {
    super.draw(rect)

    for range in backgroundRangeArray {
        self.layoutManager.enumerateEnclosingRects(forGlyphRange: range, withinSelectedGlyphRange: range, in: textContainer) { (rect, _) in
            var newRect = rect
            newRect.origin.y += self.spacing
            newRect.size.height -= self.spacing + 3

            let bezierPath = UIBezierPath(roundedRect: newRect, cornerRadius: 2)
            self.highlightedTextColor.setFill()
            bezierPath.fill()
            bezierPath.close()
        }
    }
}

enter image description here (обратите внимание на нежелательный пробел между специальными символами )

1 Ответ

0 голосов
/ 14 сентября 2018

Если я правильно понял, у вас есть диапазоны строк, которые вы хотите видеть в одной строке. Если это так, вы можете заменить обычный пробел в этих диапазонах на no-break space, например

for range in backgroundRangeArray {
    text = text?.replacingOccurrences(of: " ", with: "\u{00a0}", options: .caseInsensitive, range: range)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...