web-dev-qa-db-ja.com

背景のグラデーション:目標Cで左から右に線形

私のクライアントは、このグラデーション効果の背景ビューを必要としています。背景のグラデーション: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];

このような ?? enter image description here

9
Harshit Goel

GradientLayerのstartPointプロパティとendPointプロパティを設定する必要があります。これらは、最初の色の開始座標と最後の色の終了座標を表します。

これらは両方ともCGPointであり、xとyは0.0と1.0の間の値を持つ必要があります。

デフォルトでは、startPointにはこれらの座標(0.5、0.0)があり、endPointには(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);
25
Ocunidee

Swift 3.0&4.0

    gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
    gradientLayer.endPoint = CGPoint(x: 0.0, y: 0.5)
3
 **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);
3
Jagveer Singh