使用 UIPanGestureRecognizer 滑动视图时如何限制区域?
How to limit area when sliding a view with UIPanGestureRecognizer?
我已经设置了滑动视图的平移手势,如果它已经滑出,我想防止滑动。所以我在检查 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.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;
}
我不确定。我下载了你的项目。但是无法构建
library not found for -lSDCycleScrollView
在@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 帮我解决了这个问题!
我已经设置了滑动视图的平移手势,如果它已经滑出,我想防止滑动。所以我在检查 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.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;
}
我不确定。我下载了你的项目。但是无法构建
library not found for -lSDCycleScrollView
在@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 帮我解决了这个问题!