2016-11-14 7 views
1

У меня много CALayer, каждый из которых имеет полупрозрачный зеленый прямоугольник внутри. Когда я добавляю все эти слои на уровень представления, цвет общей области меняет цвет, как вы можете видеть на рисунке.Два полупрозрачных прямоугольника, которые перекрываются без изменения общего цвета области

Есть ли какой-либо простой способ избежать этого без необходимости искать пересечение каждый раз, когда я добавляю слой в представление? enter image description here

ответ

1

Я не уверен, если это поможет, но если ваши прямоугольники будут тот же цвет (в данном случае тот же зеленый цвет), а затем:

  1. Wrap все зеленые прямоугольники в родительском DIV
  2. Установите непрозрачность на родительском контейнере в полупрозрачном значение, которое вы хотите иметь для прямоугольников (например, 30%)
  3. Установите непрозрачность отдельных дочерних прямоугольников до 100%, так как полупрозрачность достигается за счет непрозрачности родительского контейнера

Результат: Прямоугольники будет полупрозрачность, но помутнения не будут размножаться, когда они прямоугольники перекрываются.

+0

Хорошая идея, я попробую. – Nisba

+0

Это сработало для вас Nisba? –

+0

В коде, написано время назад, я использовал CAMutableLayer, который восстанавливается при добавлении второго прямоугольника, поэтому имеет только одну форму (и, следовательно, равномерный цвет). Поскольку мое решение работает, я все еще не пробовал ваш (извините), но я попробую скоро или позже, а потом я скажу вам! – Nisba

 Смежные вопросы

  • Нет связанных вопросов^_^