У меня есть подкласс UIView - фактически кусок головоломки - с двумя разными CGLayer, инициализированными в initWithFrame.Установить «непрозрачность» CGLayer перед розыгрышем?
В DrawRect я должен смеси этого слоя два, а самый верхний должен иметь переменную альфа в зависимости от игровой логики.
Каков наилучший способ (наиболее оптимизированный для производительности)? Есть ли функция CGLayer или CGContext, которая устанавливает альфа перед рисованием?
Вы имеете в виду, что я должен создать независимый, например. - (void) метод renderView и реализовать там чертежи слоев? Тогда [puzzlePiece setNeedDisplay] можно заменить простым [puzzlePiece renderView]? – Geri
Это звучит правильно, если вам нужно каждый раз отображать все части изображения. В противном случае я просто переделаю слои, которые вам нужны, когда ваш модельный класс (данные) изменится. Нет причин перерисовывать слой только потому, что нужно перерисовать другой слой. –
Курс. Пазлы на самом деле выделяются/addSubview-ed экземпляров класса PuzzlePiece: UIView, поэтому только обработанная пользователем часть получает сообщение перерисовывания (renderView above «означает« renderPuzzleView »). – Geri