Я знаю, что это очень старый вопрос, но вот очень хорошее решение.Просто создайте категорию UIColor и добавьте этот метод.
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
{
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, (CGRect){.size = size});
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
+ (UIImage *)imageWithColor:(UIColor *)color
{
return [UIImage imageWithColor:color size:CGSizeMake(1, 1)];
}
Теперь вы можете просто установить backgroundImage на любой цвет, который вы хотите, и он автоматически обработает отключенный вид для вас.
[button setTitleColor:[UIColor someColor] forState:UIControlStateNormal];