我已经为幻灯片视图设置了一个平移手势,我想阻止视图滑动,如果它已滑出。所以我在检查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
答案 0 :(得分:1)
你能试试吗?
if (self.view.frame.origin.x > 0) {
sender.view.frame = CGRectMake(0, sender.view.frame.origin.y,
sender.view.frame.size.width, sender.view.frame.size.height);
return;
}
我不确定。我下载了你的项目。但无法建立
找不到-lSDCycleScrollView
的库
答案 1 :(得分:1)
在@PhilCai1993的帮助下,我们最终找到了解决此问题的方法:
if (sender.state == UIGestureRecognizerStateChanged) {
// ...
// Add the check at the end of the block
if (sender.view.frame.origin.x >= 0) {
sender.view.frame = CGRectMake(0, sender.view.frame.origin.y,
sender.view.frame.size.width, sender.view.frame.size.height);
}
}
更新幻灯片菜单视图的框架后,只需在块的末尾检查幻灯片菜单视图的位置。
感谢@anhtu帮助我解决这个问题!