Спросив других, предоставьте свое решение по этому вопросу, надеюсь, что это поможет кому-то в будущем.
Эта проблема возникла из-за того, что кадр, который я изменил, конфликтует с автоматическим макетом, который я установил ранее в раскадровке. Согласно документу, я должен установить для translatesAutoresizingMaskIntoConstraints значение true, чтобы отслеживать кадры.
По умолчанию маска автоматического изменения размера в представлении вызывает ограничения, которые полностью определяют
позиция представления. Это позволяет системе автоматической компоновки отслеживать кадры представлений, чьи
макет управляется вручную (например, через -setFrame:).
Когда вы решите позиционировать вид с помощью автоматического макета, добавив свои собственные ограничения,
Вы должны установить это свойство на NO. IB сделает это за вас.
Так вот и ответ.
func openPreview() {
if !isPreviewOpened {
previewView.translatesAutoresizingMaskIntoConstraints = true
UIView.animate(withDuration: 0.3) {
self.previewView.frame.origin.y = self.view.bounds.maxY - self.previewView.frame.height
self.previewButton.frame.origin.y = self.view.bounds.maxY - self.previewView.frame.height - self.previewButton.frame.height
}
}
}