iOS:可拖动的 UIView(仅限垂直)

标签 ios uiview drag

在我的应用程序中,我有一个小 subview ,我想将其系在右下角,并允许仅垂直移动固定距离。

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

- (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 的除外)?

最佳答案

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

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

同时删除对 x 参数的更改以阻止其沿对角线移动。

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

相关文章:

java - JScrollPane 拖动时的步长

android - 放大和缩小的 ImageView 问题,以最大和最小级别拖动

javascript - 编辑其他 Kinetic.Image 时拖动一个 Kinetic.Image

ios - 如何自动重新加载 Collection View ?

ios - CGRect 与 4 个矩形相交。如何找出它与哪个矩形最相交?

c# - UIControllerView 无法从委托(delegate)函数更新

ios - iOS 上触摸的绝对位置

objective-c - 从服务器读取XML文件

ios - 比较并获取存储在两个 NSDictionary 中的对象

ios - 不应该画画的时候..?