Какао / iPhone: BackgroundColor и непрозрачные свойства - PullRequest
6 голосов
/ 08 февраля 2009

В Какао, в частности в iPhone SDK, свойство opaque описывается следующим образом:

Если непрозрачный, операция рисования предполагает, что представление заполняет свои границы и может рисовать более эффективно. результаты непредсказуемы, если непрозрачны и представление не заполняет свои границы. Установите для этого свойства значение NO, если вид полностью или частично прозрачный.

По моему опыту, если у вас есть представление (метка, ячейка таблицы и т. Д.) С backgroundColor, установленным на [UIColor clearColor], вам не необходимо установить opaque на NO чтобы он отображался правильно (с четким фоном).

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

Можете ли вы смешать opaque = YES и clearColor, или я живу в одолженное время? Кажется, это нигде специально не задокументировано.

1 Ответ

1 голос
/ 08 февраля 2009

Попробуйте и убедитесь, что это единственный способ продвижения вперед на iPhone, потому что, как вы говорите, несмотря на объем документации, поставляемой с SDK, во многих случаях она не очень специфична.

Что касается непрозрачности, то это всего лишь подсказка движку компоновки, который говорит, что ему не нужно беспокоиться о отображении каких-либо слоев, которые покрыты непрозрачным слоем. Тем не менее, создание композитов выполняется графическим чипом на телефоне, поэтому во многих случаях не эффективнее не рисовать затененную часть частично затененного слоя, что, скорее всего, объясняет, почему вы не видите, что что-то портится момент (т.е. какао игнорирует настройку в тех случаях, которые вы пробовали). Точно так же вы не видите улучшения производительности от установки непрозрачного до истинного значения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...