无法使用图层上的Uiview设置梯度



我已经从stroyboard设置了uicontrollerview的颜色,但我希望以背景颜色为渐变。因此,对ViewDidappear中所需的层进行了编码。

-(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];
}

一层的颜色需要为 CGColor s。尝试以下内容:

-(void)setBackGradient{
    CAGradientLayer *grad = [CAGradientLayer layer];
    grad.frame = self.view.bounds;
    NSArray *colorsArr=@[(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];
}

最新更新