В настоящее время я создаю интерактивную функцию анаграммы для своего приложения для iPad и пытаюсь использовать события сенсорного перемещения, чтобы выбранный элемент плавно следовал за движением, но по какой-то странной причине он прыгает.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
NSString *touchClass = [NSString stringWithFormat:@"%@",[[touch view] class]];
if ([touchClass isEqualToString:[NSString stringWithFormat:@"%@",[AnagramLetter class]]]) {
NSLog(@"start moving");
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
NSString *touchClass = [NSString stringWithFormat:@"%@",[[touch view] class]];
CGPoint location = [touch locationInView:touch.view];
if ([touchClass isEqualToString:[NSString stringWithFormat:@"%@",[AnagramLetter class]]]) {
NSLog(@"touch view centre (x,y) - (%f,%f)",touch.view.center.x,touch.view.center.y);
NSLog(@"location (x,y) - (%f,%f)",location.x,location.y);
touch.view.center = location;
}
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
NSString *touchClass = [NSString stringWithFormat:@"%@",[[touch view] class]];
if ([touchClass isEqualToString:[NSString stringWithFormat:@"%@",[AnagramLetter class]]]){
NSLog(@"Now stop moving!");
}
}
Выше приведены мои 3 сенсорных метода, и кажется, что они должны работать нормально.Вы можете увидеть в методе touchesMoved, который я проверяю, для определения, является ли перемещаемый объект определенного класса (пользовательский класс, который я создал для того же проекта).У кого-нибудь есть идеи, почему это может происходить?Он следит за курсором в симуляторе, но, кажется, привязывается к нижнему углу, прежде чем он следует за курсором, поэтому он в основном прыгает по всему экрану.
Есть идеи?