如何制作一个UIPanGestureRecognizer
?我有多个视图,每个视图都有自己的UIPanGestureRecognizer
。我怎样才能做到这一点,当用户将手指放在屏幕上并将手指移过屏幕时,视图标记正在改变,视图也会改变,直到用户将手指从屏幕上抬起来?这有点难以解释......我希望你能理解。谢谢您的回答。
答案 0 :(得分:1)
我相信您正在尝试创建一个可以处理多个视图的平移手势识别器,并且您可以在平移期间了解用户手指下的哪个视图。如果是这种情况那么这应该有帮助...
创建一个视图,作为您希望参与平移的所有视图的容器。
我给每个人看了它自己的颜色,使它在视觉上显而易见。
我还为每个视图添加了一个标签,以显示它的标签。
将单个UIPanGestureRecognizer
连接到容器视图,并将其选择器附加到视图控制器类中的方法。
- (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;
}
}
}
此方法迭代附加到手势识别器的视图的子视图,并确定当前哪个子视图位于用户手指下,打印标签和当前位置。
不可否认,如果您处理大量观点,这可能不会特别有效,但对于像这样的简单案例,它可以完成工作。