Сотрите рисование линий с помощью UIBezierPath - PullRequest
2 голосов
/ 30 мая 2011

Сделал простое приложение для рисования линий с помощью UIBezierPath, но теперь нужен способ стереть линию, нарисованную с помощью UIBezierPath.Есть ли способ реализовать функцию ластика для удаления рисования линий?

Ответы [ 4 ]

6 голосов
/ 17 июля 2012

Если вы используете изображение в качестве фона, вы можете установить то же изображение, что и рисунок кисти, чтобы нарисовать безьерус, он фактически даст вам эффект ластика. Меня устраивает. :)

    brushPattern=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"image.jpg"]];
    // Here image.jpg is you background image
1 голос
/ 09 октября 2015
if(erase)
{
    [myPath strokeWithBlendMode:kCGBlendModeClear alpha:1.0f];
}
else
{
    [myPath strokeWithBlendMode:kCGBlendModeNormal alpha:1.0f];
}
0 голосов
/ 15 июня 2012

Судя по вашим комментариям к ответу Джереми, вы пытаетесь сделать пунктирные линии. Вы пытались использовать setLineDash: count: phase:

UIBezierPath *path = [UIBezierPath new];
CGFloat dashArray[3];
dashArray[0] = 8;
dashArray[1] = 3;
dashArray[2] = 8;
[path setLineDash:dashArray count:dashCount phase: 0.0];

У Apple есть пример кода здесь: http://developer.apple.com/library/mac/#samplecode/BezierPathLab/Introduction/Intro.html

0 голосов
/ 30 мая 2011

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

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