1

在我的应用程序中,我有一个小子视图,我想将它拴在右下角,并允许仅垂直移动固定距离。

我有一些代码允许它被拖动,但没有进一步的限制:

- (void)viewDragged:(UIPanGestureRecognizer *)gesture
{
    CGPoint translation = [gesture translationInView:keyView];

    // move view
    keyView.center = CGPointMake(keyView.center.x + translation.x,
                           keyView.center.y + translation.y);
// reset translation
[gesture setTranslation:CGPointZero inView:keyView];
}

我在 StackOverflow 上环顾四周并尝试了几种方法,但唯一有效的方法没有考虑对角线运动,而且我找不到任何关于将它拴在一个点上的方法。

那么有谁知道如何做到这一点?非常感谢

编辑:另外,有没有人知道这种性质的主题有一个好的、信息丰富的参考文档(Apple 除外)?

4

1 回答 1

1

您可以在视图拖动代码中添加一行,说明 keyview.centre.y 是否小于某个阈值(您希望它停止的位置),然后不要将其更改为低于该阈值。例如。

keyView.centre = CGPointMake(keyView.center.x,
                       keyView.center.y - translation.y < threshold ? threshold : keyView.center.y);

还删除对 x 参数的更改以阻止它沿对角线移动。

于 2012-11-05T22:34:42.830 回答