You must also override setHighlighted: to prevent the blue gradient from ever showing. If you just override setHighlighted: then you end up with a momentary selection effect.
so you’ll have these two methods:
- (void)setHighlighted: (BOOL)highlighted animated: (BOOL)animated
{
// don't highlight
}
- (void)setSelected: (BOOL)selected animated: (BOOL)animated
{
// don't select
//[super setSelected:selected animated:animated];
}