Вы можете создать подкласс UIButton (не рекомендуется, но так как все, что вам в итоге нужно сделать, это переопределить setHighlighted или setSelected, это не должно быть большой проблемой здесь) и переопределить методы касания для обработки вашего альфа-изменения.
// In your UIButton's subclass
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
if(self.highlighted) {
[self setAlpha:0.5];
}
else {
[self setAlpha:1.0];
}
}
Если вам нужно что-то сделать для выбранного, вы можете сделать то же самое, что и здесь