我试图为我的视图添加渐变,并向drawRect添加以下内容:

CAGradientLayer *g = [[CAGradientLayer alloc]init];
g.frame = self.bounds;
g.colors = [NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor],
            [[UIColor redColor] CGColor], nil];
g.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
               [NSNumber numberWithFloat:1.0],
                nil];
[self addSubLayer:g];


我收到警告:没有可见的@interface声明选择器'addSubLayer:'

尽管由于CALayer是其中的一部分而我导入了Quartz Core框架(否则在初始化CAGradientLayer时我将已经收到错误)。
我要去哪里错了?

最佳答案

我认为这一行应该是(注意大小写和self.layer的使用):

[self.layer addSublayer:g];


addSublayerCALayer实例方法,而不是UIView实例方法。

关于ios - 无法调用addSubLayer:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13659952/

10-12 04:55