2017-02-27 39 views
3

我的客户想要背景使用此渐变效果查看 背景渐变:rgb(118,118,118)| #ffffff | RGB(198198197)线性左至右 我已经试过这种方式,但它是在垂直方向上发生的事情,我希望它在水平方式背景渐变:在目标中线性从左到右C

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

像这样? enter image description here

+3

[梯度setStartPoint:CGPointMake(0,0 )]; [梯度对setEndpoint:CGPointMake(0,1)]; 加载开始点和结束点 –

+0

@ harshal帷幔它帮助 theViewGradient.startPoint = CGPointMake(0.0,0.0); theViewGradient.endPoint = CGPointMake(1.0,0.0); 感谢 –

回答

10

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

它们都是CGPoints及其x和y应该0.0 1.0等之间的值。

默认情况下的startPoint具有这些坐标(0.5,0.0),而端点具有那些(0.5,1.0)。

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

所以尝试:

theViewGradient.startPoint = CGPointMake(0.0, 0.5); 
theViewGradient.endPoint = CGPointMake(1.0, 0.5); 
+0

感谢的人,它帮助:) –

+0

接受我的答案是否能解决您的问题 – Ocunidee

0
**The start and end points of the gradient when drawn into the layer's 
coordinate space. The start point corresponds to the first gradient 
stop, the end point to the last gradient stop. Both points are 
defined in a unit coordinate space that is then mapped to the 
layer's bounds rectangle when drawn. (i.e. [0,0] is the bottom-left 
corner of the layer, [1,1] is the top-right corner.).The default values 
are [.5,0] and [.5,1] respectively.** 

theViewGradient.startPoint = CGPointMake(0.0, 0.5); 
theViewGradient.endPoint = CGPointMake(1.0, 0.5);