background Gradient:在物镜C中从左到右线性

Har*_*oel 9 objective-c ios cagradientlayer

我的客户想要背景视图与此渐变效果 背景渐变:rgb(118,118,118)| #ffffff | rgb(198,198,197)线性从左到右 我试过这种方式但它发生在垂直方向我希望它以水平方式

UIColor *leftColor = [UIColor colorWithRed:118.0/255.0 green:118.0/255.0 blue:118.0/255.0 alpha:1.0];
UIColor *middleColor = [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0];
UIColor *rightColor = [UIColor colorWithRed:198.0/255.0 green:198.0/255.0 blue:197.0/255.0 alpha:1.0];

// Create the gradient
CAGradientLayer *theViewGradient = [CAGradientLayer layer];
theViewGradient.colors = [NSArray arrayWithObjects: (id)leftColor.CGColor, (id)middleColor.CGColor,(id)rightColor.CGColor, nil];
theViewGradient.frame = self.view.bounds;
//Add gradient to view
[self.view.layer insertSublayer:theViewGradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)

像这样 ?? 在此输入图像描述

Ocu*_*dee 26

您需要设置gradientLayer的startPoint和endPoint属性.它们代表第一种颜色的起始坐标和最后一种颜色的结束坐标.

它们都是CGPoints,它们的x和y应该具有0.0和1.0之间的值.

默认情况下,startPoint具有这些坐标(0.5,0.0),而endPoint具有这些坐标(0.5,0.0).

(0.0,0.0)是左上角,而(1.0,1.0)是右下角

所以尝试:

theViewGradient.startPoint = CGPointMake(0.0, 0.5);
theViewGradient.endPoint = CGPointMake(1.0, 0.5);
Run Code Online (Sandbox Code Playgroud)


Cha*_*har 5

在 Swift 3.0 & 4.0 中,从左到右:

    gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
    gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
Run Code Online (Sandbox Code Playgroud)