Установить “непрозрачность” CGLayer перед рисованием?

StackOverflow https://stackoverflow.com/questions/2016394

Вопрос

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

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

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

Это было полезно?

Решение

Установите -opacity слоя.Помните, что слой -opaque настройка должна быть NO.Значение по умолчанию равно "НЕТ", но обычно для него устанавливается значение "ДА" по соображениям производительности.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top