I have a UITextView created programmatically in swift and this is what I have in my viewDidLoad() for my controller.
let isPortrait = UIInterfaceOrientationIsPortrait(UIApplication.shared.statusBarOrientation)
if isPortrait {
    searchTextView.widthAnchor.constraint(equalToConstant: view.frame.width * 0.7).isActive = true
} else {
    searchTextView.widthAnchor.constraint(equalToConstant: view.frame.width * 0.1).isActive = true
}
This is how the searchTextView is setup
func setupView() {
    self.layer.cornerRadius = 8.0
    self.translatesAutoresizingMaskIntoConstraints = false
    self.textContainerInset = UIEdgeInsets(top: 12, left: 10, bottom: 0, right: 10)
    self.textContainer.maximumNumberOfLines = 1
    self.textContainer.lineBreakMode = .byTruncatingHead
    self.autocorrectionType = .no
    self.text = ""
    self.font = Constants.fonts().largeFont
    self.backgroundColor = UIColor.white
    self.adjustsFontForContentSizeCategory = true
    self.textColor = UIColor.black
    self.layer.borderColor = UIColor.gray.cgColor
    self.layer.borderWidth = 0.25
    // Need clipsToBounds = false to show shadow
    self.clipsToBounds = false
    self.layer.shadowRadius = 20.0
    self.layer.shadowColor = UIColor.gray.cgColor
    self.layer.shadowOffset = CGSize(width: 2.0, height: 2.0)
    self.layer.shadowOpacity = 0.5
    self.tintColor = Constants.colors().primaryLightColor
}
This gives searchTextView a different widthAnchor based on the device orientation. This works fine, however, later I check when the device orientation is going to change and remove and add the corresponding widthAnchors.
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    sideMenuLauncher.dismissSideMenu(duration: 0)
    let toPortraitMode = self.view.frame.size.width > size.width
    searchTextView.widthAnchor.constraint(equalToConstant: view.frame.width * 0.7).isActive = toPortraitMode
    searchTextView.widthAnchor.constraint(equalToConstant: size.width * 0.1).isActive = !toPortraitMode
    for constraint in view.constraints {
        print("\(constraint)\n")
    }
    searchTextView.updateConstraints()
    searchTextView.layoutIfNeeded()
}
But this does not actually deactivate any constraints, as it says in this console output:
(
"<NSLayoutConstraint:0x60c000896170 PickupApp.SearchBarView:0x7f7ee1016a00.width == 56.8   (active)>",
"<NSLayoutConstraint:0x604000c9c6b0 PickupApp.SearchBarView:0x7f7ee1016a00.width == 397.6   (active)>"
)
Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x604000c9c6b0 PickupApp.SearchBarView:0x7f7ee1016a00.width == 397.6   (active)>
I can't figure out why these constraints are not being deactivated even though constraints are being added.
 
     
     
    