сначала вам нужно установить
translatesAutoresizingMaskIntoConstraints = false
для каждого компонента перед добавлением ограничений.
после этого здесь вы устанавливаете верхнюю часть просмотра изображений, Низ и высота, ограничения ширины также. Каждый из них будет конфликтовать с другими. Вам нужно использовать только один их набор. Верх, низ или высота, ширина.
использование верха, нижние ограничения не рекомендуется. image stretchy иногда. Лучше, используя ограничения по ширине и центру изображения по центру Y.
mainImageView.translatesAutoresizingMaskIntoConstraints = false
mainImageView.leadingAnchor.constraint(equalTo: self.leadingAnchor,constant:16).isActive = true
mainImageView.widthAnchor.constraint(equalToConstant: 50).isActive = true
mainImageView.heightAnchor.constraint(equalToConstant: 50).isActive = true
mainImageView.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
messageView.translatesAutoresizingMaskIntoConstraints = false
messageView.leadingAnchor.constraint(equalTo: mainImageView.trailingAnchor, constant: 16).isActive = true
messageView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -16).isActive = true
messageView.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
Вы можете центрировать текст в просмотре сообщений, используя textAlignment