尝试使用alpha崩溃设置颜色

时间:2013-04-19 07:44:10

标签: ios core-graphics exc-bad-access alpha uicolor

我正在尝试将填充UIColor设置为alpha

glassColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.3].CGColor;
CGContextSetFillColorWithColor(context, glassColor);
...

第二行与EXC_BAD_ACCESS崩溃。

关于为什么的任何想法?

2 个答案:

答案 0 :(得分:3)

在ARC中尝试使用

       UIColor *glasscolor = [UIColor colorWithRed: red 
                                   green: green 
                                    blue: blue 
                                   alpha: your alpha value];// 
       [view setBackgroundColor:glasscolor];

非常浅灰色的例子

        UIColor *glasscolor = [UIColor colorWithRed:0.945 green:0.945 blue:0.945 alpha:1.0]
        [view setBackgroundColor:glasscolor]; 

答案 1 :(得分:3)

基本上你的问题是ARC正在释放UIColor,因为它没有被使用。您需要保留CGColor结构。你可以通过以下方式完成。

 CGColorRef aColorRef = CGColorRetain([[UIColor colorWithWhite:0.82 alpha:1.0] CGColor] );
 CGContextSetFillColorWithColor(context, aColorRef);

一旦使用完毕,不要忘记发布它:

 CGColorRelease(aColorRef);