subclassing UIButton does not make sense because it's a kind of assembly/cluster class.
I had best experience creating own buttons when subclassing UIControl and add some custom behavior.
Check also this (you should not subclass UIButton).
Then also check how you highlight UIControl subclass.