Не видя всего вашего кода, трудно сказать, что здесь происходит. Вы используете раскадровки и ограничения? Или вы жестко кодируете все кадры своих представлений?
Я бы здесь использовал UIStackView
и ограничения, потому что это помогает избавиться от всех жестко запрограммированных значений позиционирования и дает вам гораздо больше гибкость для компоновки вашего пользовательского интерфейса.
let textField = UITextField()
textField.placeholder = "16 December 2018"
let imageView = UIImageView()
imageView.backgroundColor = .systemBlue
let stackView = UIStackView(arrangedSubviews: [textField, imageView])
stackView.axis = .horizontal
stackView.distribution = .fill
stackView.alignment = .center
stackView.spacing = 10
view.addSubview(stackView)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
imageView.widthAnchor.constraint(equalToConstant: 17).isActive = true
imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor).isActive = true
Как видите, здесь я установил для свойства distribution
представления стека значение .fill
, поэтому, поскольку ширина вашего изображения ограничена до 17, ваше текстовое поле width будет регулироваться, чтобы заполнить ширину представления стека. Вы можете настроить это свойство и свойство spacing
в зависимости от того, какое поведение вы ищете.