Установить «непрозрачность» CGLayer перед рисованием? - PullRequest
3 голосов
/ 07 января 2010

У меня есть подкласс UIView - на самом деле часть головоломки - с двумя разными CGLayer, инициализированными в initWithFrame.

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

Каков наилучший (наиболее оптимизированный по производительности) способ сделать это? Есть ли какая-либо функция CGLayer или CGContext, которая устанавливает альфа перед рисованием?

1 Ответ

6 голосов
/ 07 января 2010

Установите -opacity слоя. Помните, что значение слоя -opaque должно быть НЕТ. По умолчанию установлено значение NO, но для повышения производительности обычно устанавливается значение YES.

Если вы уже делаете -drawInContext:, тогда вы можете поэкспериментировать с CGContextSetAlpha(). Однако, как правило, вы не используете -drawRect: и слои одновременно. Вы обычно позволяете либо виду, либо слоям рисовать.

...