Привязать uilabel близко к тексту, который вводится в UITextField - PullRequest
0 голосов
/ 03 марта 2020

Я хочу, чтобы аббревиатура валюты uilabel внимательно следила за вводом текста в UITextField. Какой хороший способ вычислить, где закончился вводимый текст, чтобы

func rightViewRect(forBounds bounds: CGRect) -> CGRect

мог правильно вычислить прямоугольник метки?

1 Ответ

0 голосов
/ 03 марта 2020

Помимо прочего, я помог этим помощником:

func rightViewRect(bounds: CGRect,
                   label: UILabel,
                   field: UITextField
    ) -> CGRect
{
    let measure = UILabel()
    measure.font = field.font
    if field.text?.isEmpty ?? true {
        measure.text = field.placeholder
    } else {
        measure.text = field.text
    }
    let cs = measure.intrinsicContentSize
    let lcs = label.intrinsicContentSize
    guard lcs.width > 0 else {
        return .zero
    }
    let magicSpace = CGFloat(2)
    let unclipped = CGRect(x: cs.width + magicSpace, y: 0, width: lcs.width, height: bounds.height)
    let clipped = unclipped.intersection(bounds)
    return clipped
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...