2

次のコードを使用してグラデーションの色をラベルの背景に設定していますが、何が間違っているのですか? コードはここにあります:

    [self.teamName setTextColor:[UIColor whiteColor]];
    [self.teamName setBackgroundColor:[UIColor clearColor]];
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = self.teamName.bounds;
    gradientLayer.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor]CGColor], (id)[[UIColor blackColor]CGColor], nil];
    [self.teamName.layer insertSublayer:gradientLayer atIndex:0];
4

2 に答える 2

6

CAGradientLayer をメイン ビューに挿入すると、正常に動作します。

[self.teamName setTextColor:[UIColor whiteColor]];
    [self.teamName setBackgroundColor:[UIColor clearColor]];
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = self.teamName.bounds;
    gradientLayer.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor]CGColor], (id)[[UIColor blackColor]CGColor], nil];
    [self.view.layer insertSublayer:gradientLayer atIndex:0];
于 2013-03-13T11:07:55.450 に答える
1

だから私もこれをやろうとしていました!ラベルの後ろに UIView を配置し、ラベルの背景色をクリアに変更するだけで、最終的に機能しました。これをストーリーボードで行いました。

于 2016-09-11T22:28:38.013 に答える