Заполнение формы градиентом в CGContext - PullRequest
7 голосов
/ 22 июня 2009

Я хочу заполнить форму многоугольника, нарисованную с помощью Core Graphics, линейным CGGradient. Функция CGContextDrawLinearGradient рисует градиент от одной точки к другой, но заполняет весь вид. Как отобразить градиент только внутри нарисованной мною многоугольника?

1 Ответ

17 голосов
/ 22 июня 2009

Вы можете создать CGMutablePath в нужной вам форме, а затем использовать его для обрезки в области, которую вы хотите отобразить, что-то вроде ...

// Construct yourClipPath

CGContextAddPath(yourContext, yourClipPath);
CGContextClosePath(yourContext);
CGContextClip(yourContext);

// Draw Your Gradient
...