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