2010-09-20 2 views
5

Я помещаю изображение в CALayer, что может быть неправильно прозрачна:Как затемнить прозрачный прозрачный CALayer на iPhone?

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

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

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

ответ

1

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

+1

Да, но ужасно медленно. Улитка бежит быстрее. – openfrog

0

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