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

我有一些代码可以拖动它,但没有其他限制:

- (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,并尝试了几种方法,但是唯一可行的方法没有考虑对角线移动,而且在将其束缚到一个点时我找不到任何东西。

那么,有谁知道该怎么做?非常感谢

编辑:另外,有人知道这种性质的主题的参考文献很好(苹果公司除外)吗?

最佳答案

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

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

还要删除对x参数的更改以使其停止沿对角线移动。

关于ios - iOS:可拖动的UIView(仅限垂直),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13241421/

10-09 13:24