Как затемнить прозрачный CALayer неправильной формы на iPhone? - PullRequest
5 голосов
/ 21 сентября 2010

Я помещаю изображение в слой CALayer, который может быть нерегулярно прозрачным:

 theCardLayer.front = [CALayer layer];
 theCardLayer.front.contents = (id)[cardDrawing CGImage];

Другими словами, это может быть квадрат, заполняющий слой, или восьмиугольник, который оставляет углы видимыми.-through.

Я хочу иногда затемнять этот слой, но не затемняя прозрачные биты.Любые предложения о том, как сделать это программным способом?

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

Взгляните на CGBlendMode;умножение, созданное путем создания нового CGBitmapContext, рисования изображения, затем серая заливка и назначение полученного изображения вашему слою, должно работать хорошо.

0 голосов
/ 22 октября 2013

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

...