Iphone 你能用手指粘住吗?

Iphone 你能用手指粘住吗?,iphone,objective-c,ipad,Iphone,Objective C,Ipad,我的问题是这个。用户可以按住网格上的特定图像,一旦用户按住图像2秒钟,另一个视图就会在其上方弹出。现在我需要程序工作,因为用户的手指仍然在屏幕上,新创建的视图将与手指一起移动。它现在的工作原理是,用户必须移除他们的手指并将其放回屏幕上,以便视图与之一起移动。有什么想法吗?如果您使用UILongPress手势识别器来检测初始按压,您也可以使用它来跟踪动作,因为它会一直调用您的手势动作方法,直到用户抬起手指为止。您可能有许多不同的方法来实现这一点。脑海中浮现的是通过视图控制器本身管理触摸事件。这将要

我的问题是这个。用户可以按住网格上的特定图像,一旦用户按住图像2秒钟,另一个视图就会在其上方弹出。现在我需要程序工作,因为用户的手指仍然在屏幕上,新创建的视图将与手指一起移动。它现在的工作原理是,用户必须移除他们的手指并将其放回屏幕上,以便视图与之一起移动。有什么想法吗?

如果您使用UILongPress手势识别器来检测初始按压,您也可以使用它来跟踪动作,因为它会一直调用您的手势动作方法,直到用户抬起手指为止。

您可能有许多不同的方法来实现这一点。脑海中浮现的是通过视图控制器本身管理触摸事件。这将要求您实现
-canBecomeFirstResponder
,当然
涉及[开始|移动|结束|取消]:使用事件:
方法

另一种方法是,如果您使用
UIImageView
来管理和显示单个图像,则可以对其进行子类化,并通过该子类处理触摸事件。在这种情况下,您实际上不会创建一个新的
UIView
来跟踪拖动,您可以使用
nsaffinettransform
使其看起来“弹出”,并继续使用相同的视图对象跟踪位置。触摸结束后,应用识别变换以恢复其正常大小。变换是可设置动画的

编辑

在视图控制器实现中,除了实现上述触摸方法外,还要执行以下操作以实际接收控制器中的触摸事件:

@implementation MyViewController

...

- (BOOL)canBecomeFirstResponder
{
    return YES;  // Default for UIResponder is NO
}

...

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    ...
    [self becomeFirstResponder];  // ensures view controller receives touch events
}

...

@end

我已经用所有的touch方法编写了我的所有代码,所以我必须走这条路。你说我的工具可以成为第一响应者是什么意思?根据文档,它只是一个返回True或FALSE的属性如果你想让你的视图控制器成为第一响应者(即接收触摸事件),你需要实现-
(BOOL)可以成为第一响应者{return YES;}
(默认为返回
NO
)。在视图控制器的
-viewdide:
方法中,添加
[self becomeFirstResponder]使其成为第一响应者。我已经实现了UILongPressGestureRecognitor。它是这样工作的。LongPressOnVie然后使用NSNotification调用视图控制器,在我按下的视图上方创建新视图。它创建视图,但如果不取出手指并再次按下,我无法移动视图