Инвертировать маску CALayer, основанную на обводке (без заливки)IOS

Программируем под IOS
Anonymous
Инвертировать маску CALayer, основанную на обводке (без заливки)

Сообщение Anonymous »


Уважаемое сообщество Stack Overflow!

У меня возникла проблема со свойством маски CAShapeLayer в iOS (Swift).

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

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

Я пробовал разные вещи. Моя текущая версия выглядит так:
[*]Создайте CAShapeLayer, который будет содержать путь ластика. [*]Установите для fill-color слоя значение nil [*]Установите цвет обводки и ширину линии [*]Добавьте слой в качестве маски слоя изображения
Это работает нормально, но видимыми становятся только те части изображения, которые находятся внутри обводки. Я хочу сделать это обратно. Я думал о черно-белой маске, но это не работает, потому что маска доставляется через альфа-канал.

Есть ли у кого-нибудь идеи, как решить проблему?

Вернуться в «IOS»