首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制UIPanGestureRecognizer移动

限制UIPanGestureRecognizer移动
EN

Stack Overflow用户
提问于 2012-02-07 09:44:34
回答 3查看 7.4K关注 0票数 2

我有一个可以使用UIPanGestureRecognizer拖动的UIView对象,但我希望它只能向上移动屏幕的3/4。我不想让它被剪掉,而是想到达某个点,不能再拖下去了。到目前为止,我只允许它在Y轴上移动(这是所需的)。

代码语言:javascript
复制
- (IBAction)panGesture:(UIPanGestureRecognizer *)recognizer
{
  CGPoint translation = [recognizer translationInView:self.view];
  recognizer.view.center = CGPointMake(recognizer.view.center.x, 
                                       recognizer.view.center.y + translation.y);
  [recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-07 13:13:57

因此,只需检查新的Y坐标是否会太小。如果视图太小,请不要更改:

代码语言:javascript
复制
- (IBAction)panGesture:(UIPanGestureRecognizer *)recognizer
{
  CGPoint translation = [recognizer translationInView:self.view];
  [recognizer setTranslation:CGPointMake(0, 0) inView:self.view];

  CGPoint center = recognizer.view.center;
  center.y += translation.y;
  if (center.y < self.yMin)
    return;
  recognizer.view.center = center;
}
票数 7
EN

Stack Overflow用户

发布于 2012-11-22 16:34:06

它对我来说很好。

代码语言:javascript
复制
  CGPoint currentTouchPoint = [gesture translationInView:self.bottomView];

    if (fabsf(currentTouchPoint.x) > fabsf(currentTouchPoint.y))    {
        // avoid horizontal movement of pan geuture.
        return;
    }

谢谢,

纳维恩·山

票数 2
EN

Stack Overflow用户

发布于 2012-02-07 12:25:32

实现下面的手势委托,并检查其中的条件。从该代理返回YES或NO将使手势处于活动和非活动状态。

代码语言:javascript
复制
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9169949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档