我正在开发一个新应用程序,我需要实现许多应用程序中经常使用的功能。我想分别用滑动手势实现“下一页”/“上一页”功能,对于“下一页”情况,从左到右,在另一种情况下,从右到左。我已经看到有关 GestureRecognizer 的一些东西可能对我有帮助,但不幸的是,我正在 3.1.2 固件版本下进行开发,但尚不支持。任何建议或与任何教程的链接?
谢谢
我正在开发一个新应用程序,我需要实现许多应用程序中经常使用的功能。我想分别用滑动手势实现“下一页”/“上一页”功能,对于“下一页”情况,从左到右,在另一种情况下,从右到左。我已经看到有关 GestureRecognizer 的一些东西可能对我有帮助,但不幸的是,我正在 3.1.2 固件版本下进行开发,但尚不支持。任何建议或与任何教程的链接?
谢谢
看看我的代码:
UISwipeGestureRecognizer *swipeRecognizer = [ [ UISwipeGestureRecognizer alloc ] initWithTarget:self action:@selector(myFunction) ]; [ swipeRecognizer setDirection:UISwipeGestureRecognizerDirectionRight ]; [查看addGestureRecognizer:[swipeRecognizer autorelease]];
您可以更改滑动等的方向;-)
编辑:哦,我没有看到你的问题的结尾:p 所以你应该实现一个 UIView 并检测 touchesBegan 和 touchesEnd,保存 CGPoint 开始和结束并决定它是滑动还是 nop ;)
为了用一些代码回答你的问题,这是我在这个线程中给出的一个很好的例子的版本。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = touches.anyObject;
//Define "CGPoint startTouchPosition;" in your header
startTouchPosition = [touch locationInView:self];
[super touchesBegan:touches withEvent:event];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = touches.anyObject;
CGPoint currentTouchPosition = [touch locationInView:self];
// If the swipe tracks correctly.
double diffx = startTouchPosition.x - currentTouchPosition.x + 0.1;
double diffy = startTouchPosition.y - currentTouchPosition.y + 0.1;
//If the finger moved far enough: swipe
if(abs(diffx / diffy) > 1 && abs(diffx) > 100)
{
if (!swipeHandled) {
[self respondToSwipe];
//Define "bool swipeHandled;" in your header
swipeHandled = true;
}
}
[super touchesMoved:touches withEvent:event];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
swipeHandled = true;
[super touchesEnded:touches withEvent:event];
}