2011-01-22 2 views
2

У меня есть пользовательский UIView, который я рисую с использованием CoreGraphics. Используя CoreGraphics, как бы установить горизонтальный градиент и скопировать его на мой округленный прямой путь, все еще используя тень? Я написал столько же, сколько и путь, и я могу заполнить его цветом с помощью setFill, но градиент (горизонтальный тоже) не сохраняется по пути ...Горизонтальный градиент с закругленной прямой дорожкой?

EDIT: со времени публикации (не так давно), я выяснил, как сделать сложный горизонтальный градиент, так что теперь моя единственная проблема заключается в его рисовании в моем пути CGContext.

ответ

1

Ну, кажется, я нашел свой собственный ответ:

CGContextAddPath(context, path); 
CGContextClosePath(context); 
CGContextClip(context); 
CGContextDrawLinearGradient(context, gradient, startPt, endPt, 0); 

Эти строки кода совершенно закреплять его на путь закругленным прямоугольника, или любой путь желаемого.

+0

'ClosePath' предназначен для закрытия открытой подпути. Если 'path' уже закрыт,' ClosePath' ничего не сделает. Если по какой-либо причине «путь» определенно является частичным путем (в этом случае вы должны изменить свое имя на нечто более конкретное), время, чтобы закрыть путь, - это создание пути в «пути», а не потом. –

+0

В моем случае это был открытый подпуть, и я принял во внимание вашу записку и немного пересмотрел свой код: D –

Смежные вопросы