У меня такая же проблема, потому что я установил цвет фона.
Я удалил цвет фона и установил его только для UIControlStateNormal
, и стало появляться поведение по умолчанию для включения / выключения.
Если вы устанавливаете цвет фона вместо изображения, попробуйте эту категорию для преобразования UIColor в UIImage:
скопировано из здесь :
+ (UIImage *)imageWithColor:(UIColor *)color
{
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
, затем используйте это:
[self.loginButton setBackgroundImage:[UIImage imageWithColor:greenColor] forState:UIControlStateNormal];
self.loginButton.enabled = NO;
, чтобы установить цвет фона.Теперь при включении / отключении должен появиться серый эффект.