从不兼容的指针类型传递'setBackgroundColor:'的参数1

时间:2011-07-21 06:15:47

标签: ios quartz-graphics layer

- (void)drawRect:(CGRect)rect {
    // Drawing code.

    // BackgroundColor
    CALayer *myLayer = [self layer];    
    [myLayer setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5].CGColor];
    ...
}

当我想为图层设置setBackgroundColor时,发生了警告。 但代码运行正常。

=============================================== ============

最佳答案是: #import <QuartzCore/QuartzCore.h>

3 个答案:

答案 0 :(得分:4)

如果你的模块中没有包含Quartz,那么编译器不会将CGColor作为一种类型知道并发出警告。

#import <QuartzCore/QuartzCore.h>放入标题中,它应删除警告。

希望这有帮助,

戴夫

答案 1 :(得分:1)

backgroundColor的{​​{1}}属性属于CALayer类型,它是CGColorRef CGColor属性的返回类型,因此代码看起来很合理。

尝试这样做:

UIColor

答案 2 :(得分:0)

从命令中删除CGColor转换并将其写为:

[myLayer setBackgroundColor:(id)[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5].CGColor];
抱歉...试试这个更新版本