Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: WarcoОтветов: 1

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

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

objective-cheatmapcgrect

Ответы

Ответ 1 · рейтинг 2 · Ken Thomases

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы