Как настроить ширину UITextField по содержимому?

Для настройки ширины UITextField по содержимому вам необходимо рассмотреть несколько вариантов решения в зависимости от контекста вашего приложения.

1. Использование метода sizeToFit()
Метод sizeToFit() предоставляет простой способ настройки ширины UITextField на основании его содержимого. Вы можете вызвать этот метод после установки текста в поле ввода, чтобы его размер автоматически соответствовал содержимому. Например:

let textField = UITextField()
textField.text = "Some text"
textField.sizeToFit()

2. Использование расчета ширины на основе размеров текста
Если вам необходимо более точно настроить ширину UITextField, вы можете использовать метод boundingRect(with:options:attributes:context:) класса NSString для вычисления размеров текста. Затем вы можете установить соответствующую ширину для UITextField. Например:

let textField = UITextField()
textField.text = "Some long text"
let textSize = (textField.text ?? "").size(withAttributes: [.font: textField.font ?? UIFont.systemFont(ofSize: 17)])
textField.frame = CGRect(x: textField.frame.origin.x, y: textField.frame.origin.y, width: textSize.width, height: textField.frame.height)

3. Использование Auto Layout
Если вы работаете с Auto Layout, вы можете настроить ширину UITextField с помощью ограничений. Вам нужно добавить ограничение, которое устанавливает ширину UITextField равной ширине его содержимого. Например:

let textField = UITextField()
textField.text = "Some dynamic text"
textField.translatesAutoresizingMaskIntoConstraints = false
let widthConstraint = textField.widthAnchor.constraint(equalToConstant: textField.intrinsicContentSize.width)
widthConstraint.isActive = true

Обратите внимание, что это лишь несколько возможных вариантов настройки ширины UITextField по содержимому в Swift. Вы можете выбрать наиболее подходящий подход для вашего конкретного случая, в зависимости от требований вашего приложения.