The problem arrises when calling layoutIfNeeded() before you call .identity on the tabBar transform.
@objc func minimizePlayerDetails() {
// the order of these calls prevents layout warnings
maximizedTopAnchorConstraint.isActive = false
bottomAnchorConstraint.constant = view.frame.height
minimizedTopAnchorConstraint.isActive = true
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.tabBar.transform = .identity
self.view.layoutIfNeeded()
self.playerDetailsView.maximizedStackView.alpha = 0
self.playerDetailsView.miniPlayerView.alpha = 1
})
}