как избежать увеличения альфа-компонента при наложении двух CGRect на карту?

Я разрабатываю приложение в Objective-C для iOS. У меня есть некоторые данные, связанные с координатами GPS, которые я получаю из CoreData, и я хочу представить эти данные на карте, рисующей CGRect с некоторыми цветами, чтобы создать своего рода тепловую карту. Я могу это сделать, но моя проблема в том, что если есть два или более перекрывающихся CGRect, альфа-компонент CGRect суммируется, поэтому, если есть много перекрывающихся CGRect, я теряю прозрачность. Мой вопрос в том, существует ли что-то, чтобы избежать этого и рисовать перекрывающиеся CGRects без потери прозрачности. Может быть, что-то, что обрезает предыдущий CGRect и добавляет новый.

Есть идеи? Спасибо в совете.


person Warco    schedule 12.03.2016    source источник


Ответы (1)


Вы можете нарисовать прямоугольники без прозрачности на CGLayer или UIImage, а затем нарисовать этот слой/изображение поверх вашей карты с желаемой прозрачностью.

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

person Ken Thomases    schedule 12.03.2016
comment
Спасибо за ответ, я решил с помощью этого CGContextSetBlendMode(ctx, kCGBlendModeDestinationAtop); - person Warco; 12.03.2016