Currently, if you call layoutsubviews while the button is animating, setStyle(buttonStyle, animated: false) will be called and hence the animation will complete instantly.
Since my button animates the view it is in, layoutsubviews is called several times during the transition and hence the button doesn't work.