им пытаются отправить параметр из моего touchesEnded обработчика как так ...Не удается отправить параметр из touchesEnded
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];
CGFloat deltaX = fabsf(gestureStartPoint.x - currentPosition.x);
CGFloat deltaY = fabsf(gestureStartPoint.y - currentPosition.y);
if (deltaX >= 0.3 && deltaY <= 100) { //horizontal swipe detected
[self performSelector:@selector(refreshCover:)
withObject:nil afterDelay:0];
if (gestureStartPoint.x < currentPosition.x) { //swipe right
[self refreshCover:@"backward"];
NSLog(@"swipe backward");
} else { //swipe left
[self refreshCover:@"forward"];
NSLog(@"swipe forward");
}
}
}
затем в refreshCover, я просто:
- (void)refreshCover:(NSString*)direction {
NSLog(@"direction: %@", direction);
}
когда пользователь пойло, вызывается refreshCover, но параметр направления не проходит. если я вызываю [self refreshCover: @ "forward"] из любого места, этот параметр передается без проблем.
любые идеи? заранее спасибо.
что такое [self performSelector: ...] предположительно? Распечатывают ли журналы? – jakev
Почему вы вызываете refreshCover: с помощью функции performSelector (с объектом nil) перед if-statement? – Anna
Почему бы просто не использовать ['UISwipeGestureRecognizer'] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UISwipeGestureRecognizer_Class/Reference/Reference.html)? –