маскировка с изображением в iOS - PullRequest
3 голосов
/ 26 февраля 2011

Я хотел бы взять изображение и использовать его в качестве маски для вида, к которому я добавляю многочисленные виды изображений. Я знаю о кварцевом вызове CGContextClipToMask (), но как лучше всего подойти к этому? Могу ли я переопределить метод drawRect представления контейнера, вызвать CGContextClipToMask () внутри него и затем ожидать, что его подпредставления будут придерживаться этого региона отсечения? Это не похоже на работу.

Нужно ли вместо этого добавить поверх изображения какое-нибудь изображение маски блокировки?

1 Ответ

1 голос
/ 27 февраля 2011

Вместо создания подклассов или переопределения функций рисования я решил наложить изображения на изображение с прозрачностью в видимой части. то есть, если моя «поверхность» была изображением пергамента, и я намеревался нарисовать на нем кучу изображений. У меня будет пергаментное изображение, затем контейнер UIView для любых изображений, которые будут помещены на этот пергамент, затем маскирующее изображение поверх того, которое было исходным пергаментным изображением, но вместо этого сам пергамент преобразован в полную прозрачность, в то время как окружающая область остается точно в качестве фона, на котором находится пергамент (тогда все остальные виджеты UI поверх него).

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

...