Вопрос:

Как можно нарисовать точку на экране на прикосновениях, закругленных с помощью UIBezierpath

ios objective-c uibezierpath

1991 просмотра

2 ответа

137 Репутация автора

Может кто-нибудь здесь, пожалуйста, покажите мне, как нарисовать одну точку с помощью UIBezierpath? Я могу нарисовать линию, используя UIBezierpath, но если я уберу свой палец и верну его обратно, а затем ничего не вытяну, на экране появится ничья.

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint p = [touch locationInView:self];
    [pPath moveToPoint:p];
    [pPath stroke];
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect
{
     [pPath stroke];
}
Автор: newdev1 Источник Размещён: 05.04.2013 09:40

Ответы (2)


6 плюса

300860 Репутация автора

Решение

Ваш путь не включает в себя какие-либо отрезки линий или кривых, которые нужно обвести

Попробуйте это вместо:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    CGPoint p = [touches.anyObject locationInView:self];
    static CGFloat const kRadius = 3;
    CGRect rect = CGRectMake(p.x - kRadius, p.y - kRadius, 2 * kRadius, 2 * kRadius);
    pPath = [UIBezierPath bezierPathWithOvalInRect:rect];
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect {
    [[UIColor blackColor] setFill];
    [pPath fill];
}
Автор: rob mayoff Размещён: 05.04.2013 09:48

4 плюса

315 Репутация автора

Я использовал этот код:

 -(void)handleTap:(UITapGestureRecognizer*)singleTap { 
     //draw dot on screen

     CGPoint tapPoint = [singleTap locationInView:self];
     [bezierPath_ moveToPoint:tapPoint];
     [bezierPath_ addLineToPoint:tapPoint];

     [self setNeedsDisplay]; 
}
Автор: mirror Размещён: 04.09.2013 06:05
Вопросы из категории :
32x32