#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)