Я бы создал подкласс UIButton и переопределил бы метод setEnabled: примерно так:
- (void) setEnabled:(BOOL)enabled {
NSLog(@"Button enabled = %d", enabled);
[super setEnabled:enabled];
UIColor *color = self.backgroundColor;
if (!self.isEnabled) {
self.backgroundColor = [color colorWithAlphaComponent:0.75];
} else {
self.backgroundColor = [color colorWithAlphaComponent:1.0];
}
}