If you set button corner radius programmatically it won't return to its original state.
I suggest under setOriginalState
method set
self.layer.cornerRadius = layer.cornerRadius
instead of self.cornerRadius
, this way it will go back to original state if you set programmatically or via storyboard.