2017-03-03 5 views
0

私はuicontrollerviewの色をstroyboardから設定しましたが、背景色にグラデーションが必要です。必要なレイヤーがまだ表示されていない状態で表示されます。レイヤーを使用してuiviewでグラデーションを設定できません

-(void)viewDidAppear:(BOOL)animated{ 
    [self setBackGradient]; 
} 

-(void)setBackGradient{ 
    CAGradientLayer *grad = [CAGradientLayer layer]; 
    grad.frame = self.view.bounds; 

    UIColor *topColor=[UIColor colorWithRed:0.91 green:0.94 blue:0.99 alpha:1.0]; 
    UIColor *bottomColor=[UIColor colorWithRed:0.67 green:0.80 blue:0.93 alpha:1.0]; 

    NSArray *colorsArr=[[NSArray alloc]initWithObjects:topColor,bottomColor, nil]; 
    grad.colors=colorsArr; 
    grad.masksToBounds=YES; 
    [self.view.layer insertSublayer:grad atIndex:0]; 
} 
+0

ビューの背景色はどうですか?レイヤーを追加する前に透明に設定してください。 – abarbier

+0

はクリアカラーをIBから試しましたが、動作していないと黒い背景が表示されています。 – Log

答えて

0

レイヤーの色はCGColorである必要があります。以下を試してください:

-(void)setBackGradient{ 

    CAGradientLayer *grad = [CAGradientLayer layer]; 
    grad.frame = self.view.bounds; 

    NSArray *[email protected][(id)[UIColor colorWithRed:0.91 green:0.94 blue:0.99 alpha:1.0].CGColor, (id)[UIColor colorWithRed:0.67 green:0.80 blue:0.93 alpha:1.0].CGColor]; 
    grad.colors=colorsArr; 
    grad.masksToBounds=YES; 
    [self.view.layer insertSublayer:grad atIndex:0]; 

} 
関連する問題