UIBezierPath nie rysuje gładkiej krzywej
Używam UIBezierPath do rysowania i napisałem kod na zdarzeniach dotykowych i działa on dobrze, ale moje krzywe nie są gładkie, kiedy przesuwasz palec i rysuję krzywą, nie są gładkie.
- (void)drawRect:(CGRect)rect
{
[[UIColor redColor] setStroke];
for (UIBezierPath *_path in pathArray)
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}
#pragma mark - Touch Methods
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
myPath=[[UIBezierPath alloc]init];
myPath.lineWidth=5;
myPath.lineCapStyle = kCGLineCapRound;
myPath.flatness = 0.0;
UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
[myPath moveToPoint:[mytouch locationInView:self]];
[pathArray addObject:myPath];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
[myPath addLineToPoint:[mytouch locationInView:self]];
[self setNeedsDisplay];
}
Oto obraz
Na powyższym obrazie, jeśli zobaczysz litery ai d, zobaczysz, że krzywa nie jest gładka. Co powinienem zrobić, aby uzyskać gładką krzywą?