【问题标题】:Cannot Call addSubLayer:无法调用 addSubLayer:
【发布时间】:2012-12-01 13:35:09
【问题描述】:

我正在尝试向我的视图添加渐变,并将以下内容添加到 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 时收到错误消息)。 我哪里错了?

【问题讨论】:

  • 对不起,这个愚蠢的问题,但你是在子类 UIView 中这样做的吗?还是来自视图控制器? self的类是什么?
  • 好问题。它来自子类 UIView,而不是来自视图控制器。

标签: ios calayer quartz-core


【解决方案1】:

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

[self.layer addSublayer:g];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多