ios - 来自具有 alpha 的 UIColor 的 UIImage

标签 ios uibutton uiimage uicolor

我正在尝试从我拥有的这个 UIColor 值创建一个 UIImage。正在创建 UIImage,但 alpha 值丢失。图像保持不透明。我正在使用以下代码:

@implementation GetImage

+ (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size
{
    UIImage *img = nil;

    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context,
                               color.CGColor);
    CGContextFillRect(context, rect);

    img = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return img;
}

@end

我这样调用它:

-(void) setButtonColours{

    UIImage *img1, *img2;

    UIColor *red = [UIColor colorWithRed:205.0/255.0 green:68.0/255.0 blue:51.0/255.0 alpha:1.0],
    *blue = [UIColor colorWithRed:71.0/255.0 green:97.0/255.0 blue:151.0/255.0 alpha:1.0];

    img1 = [GetImage imageWithColor: blue andSize: self.dummyButton.frame.size];

    img2 = [GetImage imageWithColor: red andSize: self.dummyButton.frame.size];

    [self.dummyButton setBackgroundImage: img1 forState:UIControlStateNormal];
    [self.dummyButton setBackgroundImage: img2 forState:UIControlStateSelected];

}

知道我错过了什么吗?

最佳答案

您正在创建不透明的图像上下文。

替换这一行:

UIGraphicsBeginImageContext(rect.size);

与:

UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0);

关于ios - 来自具有 alpha 的 UIColor 的 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879133/

相关文章:

objective-c - 如何在 UIIMagePickerController 中设置自定义图像

ios - iPhone 上的文件夹和图像在哪里?[swift]

ios - 如何将背景图像添加到 UIBarButtonItem

iphone - viewDidLoad 处的文本左对齐,而不是使用自定义字体居中

ios - UITextField 数字小键盘 : dot instead of comma for float values

纵向和横向 View 的 iOS Storyboard约束/特征

ios - 在单个 UIVIewController 中垂直放置两个全屏 UIView?

ios - 如何更改向 IBAction 注册的自定义 UIButton 的颜色?

ios - 使用填充有字母的 UiButtons 来造词

ios - 如何使用 CABasicAnimations 和自动布局替换 CGAffineTransform 缩放和 alpha 动画?