0

塗りつぶしを設定しようとしUIColorていますalpha

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

2 行目は でクラッシュしEXC_BAD_ACCESSます。

理由についてのアイデアはありますか?

4

2 に答える 2

3

基本的にあなたの問題は、ARCが使用されていないためにUIColorを解放していることです。CGColor 構造を保持する必要があります。次の方法でそれを行うことができます。

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

使い終わったら忘れずにリリースしてください。

 CGColorRelease(aColorRef); 
于 2013-04-19T09:25:41.820 に答える
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]; 
于 2013-04-19T08:19:34.273 に答える