Я ищу, чтобы получить данные в режиме реального времени, когда пользователь просматривает экран. Вот мой код:Получить UIPanGesture Distance Of A Swipe
-(void)initViewWithCIImage:(CIImage*) ciImage UIImage:(UIImage*)uiimage
{
_originalUIImage = uiimage;
_originalCIImage = ciImage;
CIContext *context = [CIContext contextWithOptions:nil];
_currentCGImageRef = [context createCGImage:_originalCIImage fromRect:[_originalCIImage extent]];
_picture.image = uiimage;
}
-(void)swipeRecognized:(UISwipeGestureRecognizer *)swipe
{
CGPoint startLocation;
if (swipe.state == UIGestureRecognizerStateBegan)
{
startLocation = [swipe locationInView:self.view];
}
else
{
NSLog(@"start loc is %f",startLocation.x);
CGPoint stopLocation = [swipe locationInView:self.view];
CGFloat dx = stopLocation.x - startLocation.x;
CGFloat dy = stopLocation.y - startLocation.y;
CGFloat distance = sqrt(dx*dx + dy*dy);
NSLog(@"Distance: %f", distance);
}
}
Когда я начинаю салфетки, я получаю действительную дистанционную точку. Тем не менее, как я по-прежнему красть я получаю расстояние бесконечно:
Вот журнал печать из моего кода:
2014-09-23 17: 06: 57,735 CameraApp [2503: 60b] startLocation.x является -0,000000
2014-09-23 17: 06: 57,738 CameraApp [2503: 60b] Расстояние: 856,214417
2014-09-23 17: 06: 57,739 CameraApp [2503: 60b] startLocation.x это - 413119666577672720342843392.000000
2014-09-23 17: 06: 57.740 CameraApp [2503: 60b] Расстояние: inf
.... повторяет последние 2 строк, как я красть
Вы можете думать о том, почему я получаю бесконечный или как я могу установить свой код на лучше, чтобы получить в режиме реального времени данных красть расстояние?
Спасибо!
'startLocation' - локальная переменная. В состояниях жестов, отличных от «Начал», вы не инициализируете «startLocation». Вы должны сделать его переменной экземпляра. – rmaddy
Массивный дерп! Спасибо. Положите это как ответ, и я дам вам полный кредит. Я был слишком глубоким и не обращал внимания на основы! Спасибо за свежие глаза – Aggressor