Я работаю с мультитач во время письма, поэтому в основном я пишу с поддержкой рук, потому что обычно так пишет пользователь, я перешел по этой ссылке Как игнорировать определенные точки UITouch в последовательности мультитач
Все работает нормально с одним касанием, но возникает проблема, когда я пишу рукой, касаясь экрана, т.е. несколько UItouch. Ниже приведен мой код.
Начались касания, я прохожу все касания и нахожу касание с самой высокой позицией y, ниже мой код
Ниже мой код
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* topmostTouch = self.trackingTouch;
for (UITouch *touch in touches)
{
ctr = 0;
touchStartPoint1 = [touch locationInView:self];
if(!topmostTouch || [topmostTouch locationInView:self].y > touchStartPoint1.y)
{
topmostTouch = touch;
pts[0] = touchStartPoint1;
}
}
self.trackingTouch = topmostTouch;
}
В тач переехал., возьму только self.trackingTouch, который нашел в тач Начал
Мои штрихи Перемещенный код ниже
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
if(self.trackingTouch== nil)
{
return;
}
CGPoint p = [self.trackingTouch locationInView:self];
ctr++;
pts[ctr] = p;
if (ctr == 4)
{
pts[3] = midPoint(pts[2], pts[4]);
self.currentPath = [[DrawingPath alloc] init];
[self.currentPath setPathColor:self.lineColor];
self.currentPath.pathWidth = [NSString stringWithFormat:@"%f",self.lineWidth];
[self.currentPath.path moveToPoint:pts[0]];
[self.currentPath.path addCurveToPoint:pts[3] controlPoint1:pts[1] controlPoint2:pts[2]];
[self setNeedsDisplay];
pts[0] = pts[3];
pts[1] = pts[4];
ctr = 1;
}
}
Для справки вот изображение письма с одним касанием и мультитач соответственно.
Вы можете видеть, что, когда я пишу одним касанием, мой почерк гладкий, кривые плавные, но когда я пишу, когда рука отдыхает, кривые становятся неровными, как вы можете видеть на втором изображении.
Итак, друзья, помогите мне
touchesEnded:
иtouchesCancelled:
? - person Aaron Brager   schedule 23.02.2014