Ios7 为什么UISweepGestureRecognitor没有响应?
我尝试使用Ios7 为什么UISweepGestureRecognitor没有响应?,ios7,uiview,uiswipegesturerecognizer,Ios7,Uiview,Uiswipegesturerecognizer,我尝试使用UIWipegestureRecognitor在我的UIView中检测垂直方向 我的视图大小为{0,01024,1536},这意味着高度是全屏高度的两倍,也意味着一半视图在屏幕上,一半视图在屏幕外。 我的目的是在检测到uisweegestureerecognizerDirectionDown时将视图的帧下移到{0,-768,10241536},在检测到uisweegestureerecognizerDirectionUp时将视图上移到{0,010241536} 请参考图表 问题 最初视
UIWipegestureRecognitor
在我的UIView
中检测垂直方向我的视图大小为{0,01024,
1536
},这意味着高度是全屏高度的两倍,也意味着一半视图在屏幕上,一半视图在屏幕外。
我的目的是在检测到uisweegestureerecognizerDirectionDown
时将视图的帧下移到{0,-768
,10241536},在检测到uisweegestureerecognizerDirectionUp
时将视图上移到{0,010241536}
请参考图表
问题最初视图的帧是{0,010241536},当检测到
uisweegestureerecognizerdirectiondown
并将屏幕外部分上移时,我得到了响应。
在那之后,我在屏幕上滑动时没有得到任何回应
我知道如何解决这个问题?
我尝试了很多方法,但都没有解决我的问题。
问题可能是由屏幕外部分引起的
更新
首先,我尝试使用UIScrollView来实现,但失败了。
问题是滚动视图的垂直检测不是很准确,总是误导我
向上/向下移动视图
我希望直接而不是逐渐地改变看法
因此,我放弃了UIScrollView
我的代码
-(void)viewDidLoad {
// ...
UISwipeGestureRecognizer * upSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(toggleUpSwipe:)];
[upSwipe setDirection:UISwipeGestureRecognizerDirectionUp];
[self.view addGestureRecognizer:upSwipe];
UISwipeGestureRecognizer * downSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(toggleDownSwipe:)];
[downSwipe setDirection:UISwipeGestureRecognizerDirectionDown];
[self.view addGestureRecognizer:downSwipe];
//...
}
- (void)toggleUpSwipe:(UISwipeGestureRecognizer*)swipeGesture
{
//...
}
- (void)toggleDownSwipe:(UISwipeGestureRecognizer*)swipeGesture
{
//...
}
尝试在viewcontroller上使用UIscrollview,而不是使用手势。 在使用UIscrollview时,您可以为内容大小指定所需的任何大小,也可以实现上下滚动,而无需使用手势识别器。使用此选项
UISwipeGestureRecognizer *swipeLeft =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft:)];
swipeLeft.direction =UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeLeft];
UISwipeGestureRecognizer *swipeRight =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRight:)];
swipeRight.direction =UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeRight];
也
还包括.h上的
谢谢。我以前试过,结果是一样的。屏幕部分可以调用我的选择器调用,但屏幕外部分在刷卡时没有响应。
-(IBAction)swipeLeft:(id)sender
{
//...
}
-(IBAction)swipeRight:(id)sender
{
//...
}