Вы можете удерживать ссылку на них, затем использовать deactivate
var oldCons = [NSLayoutConstraint]()
override func viewDidLoad() {
super.viewDidLoad()
oldCons = [
i.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :150),
i.topAnchor.constraint(equalTo: view.centerYAnchor, constant : -200),
i.widthAnchor.constraint(equalToConstant: 300),
i.heightAnchor.constraint(equalToConstant: 450)
]
NSLayoutConstraint.activate(oldCons)
}
@objc func selena(){
NSLayoutConstraint.deactivate(oldCons)
NSLayoutConstraint.activate ([
i.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :50),
i.topAnchor.constraint(equalTo: view.centerYAnchor, constant : -50),
i.widthAnchor.constraint(equalToConstant: 20),
i.heightAnchor.constraint(equalToConstant: 450)
])
}
ограничение высоты не изменилось, вы можете получить его из массива внутри viewDidLoad
i.heightAnchor.constraint(equalToConstant: 450).isActive = true
и удалите его из selena
функции