Как удалить линии UIBezierPath, нарисованные на прозрачном изображении над изображением? - PullRequest
2 голосов
/ 02 ноября 2011

Я создаю такое приложение, как доска. У меня есть одно динамическое изображение. Изображение имеет несколько цветов. Я хочу нарисовать линию на этом изображении так же, как на доске, поэтому я наложил прозрачный вид на это. Теперь я рисую линию с выбранным цветом, который работает очень хорошо.

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

Я пытался нарисовать линию с цветом, альфа = 0, но это ничего не отражает, так как линия также прозрачного цвета.

Я добавляю в свой метод рисования прямоугольник.

for (UIBezierPath *path in aryDrawPath) {       
    [[UIColor redColor] set];       
    [path stroke];
}

Может ли тело помочь мне решить эту проблему.

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

Если у вас есть изображение на заднем плане, и оно имеет тот же размер и происхождение, что и холст для рисования на белой доске, вы можете попробовать нарисовать «стереть» линии, используя фоновое изображение в качестве цветного рисунка:

[[UIColor colorWithPatternImage:backgroundImage] set];

Где backgroundImage - это UIImage, над которым вы рисуете.

Это закрасит нарисованные линии изображением внизу, поэтому они будут стерты.Кажется, это немного хакерски?

1 голос
/ 28 сентября 2016

Вы можете использовать режим наложения.Использовать CGBlendMode..Clear Document

...