ios - 如何以编程方式在更多 View 上连接更多 UIPanGestureRecognizer?

标签 ios uigesturerecognizer

如何制作一个 UIPanGestureRecognizer?我有多个 View ,每个 View 都有自己的 UIPanGestureRecognizer。我怎样才能做到这一点,当用户将手指放在一个手指上并在屏幕上移动手指时, View 的标签以及 View 都会发生变化,直到用户将手指从屏幕上抬起?这有点难以解释......我希望你能理解。谢谢您的回答。

最佳答案

我相信您正在尝试创建一个可用于多个 View 的平移手势识别器,并让您知道在平移过程中用户手指下当前是哪个 View 。如果是这种情况,那么这应该会有所帮助...

创建一个 View 作为您想要参与平移的所有 View 的容器。

enter image description here

我为每个 View 赋予了自己的颜色,以使其在视觉上显而易见。

enter image description here

我还为每个 View 添加了一个标签以显示它的标签。

将单个 UIPanGestureRecognizer 连接到容器 View 并将其选择器附加到 View Controller 类中的方法。

- (IBAction)panGestureRecognizerTriggered:(UIPanGestureRecognizer *)recognizer
{
    CGPoint location = [recognizer locationInView:recognizer.view];

    // Find the view that is currently under the user's finger
    for (UIView *view in recognizer.view.subviews) {
        if (CGRectContainsPoint(view.frame, location)) {
            NSLog(@"View %d at %@", (int)view.tag, NSStringFromCGPoint((location)));

            // Found the view, stop searching :)
            break;
        }
    }
}

此方法迭代附加到手势识别器的 View 的 subview ,并确定哪个 subview 当前在用户手指下,打印标签和当前位置。

诚然,如果您要处理大量 View ,这可能不会特别有效,但对于像这样的简单情况,它可以完成工作。

关于ios - 如何以编程方式在更多 View 上连接更多 UIPanGestureRecognizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32117445/

相关文章:

ios - 如何将平移手势从 ScrollView 转发到另一个 ScrollView

ios - 如何将手势识别器添加到 UIImageview?

ios - TableView :indexPath* always returning a nil IndexPath

ios - 在 Facebook 上只分享文字

带有 CoreLocation 的 iOS 地理围栏

ios - 表格 View 选择和平移手势

uinavigationcontroller - 在 iOS7 中从 UINavigationController 滑动弹出时查看 Controller 生命周期

ios - 如何在 iOS 上触发闹钟以恢复我的广播流? (比如 tuneIn Radio)

具有动态高度的 iOS UIView 取决于内部元素的数量

ios - 如何在 UITableViewCell 中添加注释文本?