ios - 无法调用 addSubLayer :

标签 ios calayer quartz-core

我正在尝试向我的 View 添加渐变,并将以下内容添加到 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:”

尽管我导入了 Quartz Core 框架,因为 CALayer 是其中的一部分(否则我在初始化 CAGradientLayer 时已经收到错误消息)。 我哪里错了?

最佳答案

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

[self.layer addSublayer:g];

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

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

相关文章:

ios - 强制异步任务按顺序运行

uiview - 更改 CALayer 的大小也会更改先前添加的图层大小

java - 使用 Quartz 的每日作业调度程序

iOS View.layer.border 有白边

ios - 如何让 leftBarButtonItem 看起来像 backBarButtonItem?

android和ios的java socket编程聊天室

ios - UIImageView 保持空白

ios6 - CALayer renderInContext iOS7

iOS:CALayer 的辅助功能标签

ios - 无法将类型 'CGPoint!' 的值转换为预期的参数类型 'UnsafeMutablePointer<CGPoint>'