私は、これは非常に古い質問ですが、ここでは非常に素晴らしいソリューションです知っています。 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];