【发布时间】:2015-10-26 13:49:10
【问题描述】:
我已经为滑动视图设置了平移手势,如果视图滑出,我想防止它滑动。所以我在检查UIGestureRecognizerStateChanged时添加了这个
CGPoint velocity = [(UIPanGestureRecognizer *)sender velocityInView:self.view];
if (sender.state == UIGestureRecognizerStateChanged) {
CGPoint velocity = [(UIPanGestureRecognizer *)sender velocityInView:self.view];
if (self.slideMenuView.frame.origin.x > 0 && velocity > 0) {
return;
}
// ...
}
似乎可以,但是如果我将视图向左滑动然后很快将其拖动到相反的方向,检查将变得无效:
请帮帮我。
更新:我已将项目上传到 GitHub:Vayn/ice
【问题讨论】:
-
您是否尝试过使用
if (self.slideMenuView.frame.origin.x > 0 && velocity > 0)之类的条件if (self.slideMenuView.frame.origin.x > 0 || velocity > 0),...? -
使用
translation而不是velocity来检查条件怎么样? -
@ChengYuHsu 不行,不行。
-
@anhtu 我试过了,幻灯片视图已经冻结 ...
-
是的,因为
velocity > 0。if (self.slideMenuView.frame.origin.x > 0) {self.slideMenuView.frame = CGRectMake(0,self.slideMenuView.frame.origin.y,self.slideMenuView.frame.size.width,self.slideMenuView.frame.size.height}怎么样。我的意思是,您可以尝试重置它的 origin.x = 0,而不是返回。
标签: ios iphone uigesturerecognizer uipangesturerecognizer