Я делаю что-то немного необычное. Я пытаюсь подкрасить все компоненты в моем приложении красным (возможно, вы видели некоторые другие сообщения от меня об этом, но это нечто более конкретное). Для этого я перехватываю все вызовы drawInContext CALayer: и после вызова оригинального метода я накладываю красный на слой, используя kCGBlendModeDarken (или kCGBlendModeMultipy). Это работает на удивление хорошо для большинства компонентов пользовательского интерфейса. Однако, когда я делаю это с помощью UILabels, ранее прозрачный фон становится белым (ну, на самом деле, он окрашен в красный цвет). Вы можете увидеть, как это выглядит на этом изображении моей панели инструментов
http://www.thinkastronomy.com/RedLabels.png
Обратите внимание, что UIImages также не окрашены, но это тема другого вопроса.
Так может ли кто-нибудь объяснить, почему фон UILabel будет виден этим композитингом? Кажется, что это происходит в значительной степени независимо от режима композитинга. Как я могу предотвратить это?