0

ビューにグラデーションを追加しようとしていますが、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を初期化したときにすでにエラーが発生していました)。どこが間違っているのですか?

4

1 に答える 1

2

行は次のようにすべきだと思います(大文字と小文字の区別との使用に注意してくださいself.layer):

[self.layer addSublayer:g];

addSublayerCALayerインスタンスメソッドであり、インスタンスメソッドではありませんUIView

于 2012-12-01T15:29:44.680 に答える