CAGradientLayer with Angle
cagradientlayer, cashapelayer, ios
Solution
The start and end points of a linear gradient are specified in points relative to the whole size of the layer, with (0,0) at the top left and (1,1) at the bottom right.
Therefore, to make a linear gradient at an angle, you simply need to set the start and end points appropriately. For example, If you used (0,0) and (1,1) as the start and end points, the gradient would run from the top left to the bottom right, at a 45 degree angle.
Working out the specific start and end points for your needs is therefore just a matter of trigonometry.
Problem
I am drawing `CGPath` which is not rectangle or square,and adding `CGPath` to `CAShapeLayer`. This `CAShapeLayer`'s frame getting from `CGPath` using `CGPathGetBoundingBox(path)`. So it will be rectangle or square. Now i want to set gradient color to layer but my path is not rectangle or square so it is not spreading gradient color equally in whole `CGPath`. Is there any way to set gradient color to CGPath or how can i set gradient color with angle? Please refer screen shot to understand situation. Here white color indicates frame of `CGPath` and green colour, that is our drawn `CGPath`. At the bottom of `CGPath` you can see white gradient colour which is not distributed equally in `CGPath`.