UIImage не изменяет размер в соответствии с размером UIImageView шириной и высотой

#swift #uiimageview #storyboard #uiimage #ibinspectable

Вопрос:

Я новичок в Swift и пытаюсь добавить UIImageView справа от поля UITextField, используя раскадровку и аннотацию @IBInspectable. Однако, когда я определяю свой UIImageView с определенным размером и добавляю UIImage, размер UIImage не изменяется в соответствии с размером UIImageView.

Вот мой код:

     @IBInspectable var rightImage: UIImage? {
    didSet {
        guard let image = rightImage else {
            return
        }
        rightViewMode = .always
        let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
        imageView.image = image
        imageView.contentMode = .scaleAspectFit
        rightView = imageView
 

и вот результат на экране:
Большая большая иконка

Если вы можете сказать мне, что не так с моим кодом, не стесняйтесь. Спасибо.

Комментарии:

1. Вам нужно использовать автозапуск, а не рамку, чтобы настроить представление изображения.

2. Спасибо, Мэтт, я добавил ограничения в свой UIImageView, и это сработало!

Ответ №1:

Я использую ограничения, основанные на предложении Мэтта в комментарии, и сейчас это работает:

 let constraints = [
    imageView.heightAnchor.constraint(equalToConstant: 20),
    imageView.widthAnchor.constraint(equalToConstant: 20)
]

NSLayoutConstraint.activate(constraints)