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