有没有办法在触摸事件中途改变第一响应者?
我有一个弹出框,如果它识别出 UIPanGesture,它应该关闭并 resignFirstResponder。但是,它仍然保留 firstResponder 直到它开始关闭后大约一秒钟。
我的目标是将 UIImageView 从弹出窗口“拖”到 mainViewController 中。当用户在 popover 中拖动 UIImageView 时,popover 应该关闭,并且应该在 mainControllerView 中创建一个可以拖动的新 UIImageView。
主控制器视图.m
-(IBAction)panGesture:(UIPanGestureRecognizer*)sender
{
if (showPiecesPopover.isPopoverVisible) {
[self.view removeGestureRecognizer:panGestureRecognizer];
panGestureRecognizer = [((PopoverCreateNewBoardViewController*)showPiecesPopover.contentViewController) panGestureRecognizer];
panGestureRecognizer.delegate = self;
[self.view addGestureRecognizer:panGestureRecognizer];
[showPiecesPopover dismissPopoverAnimated:YES];
}
if (movingPiece) {
[selectedPieceImageView setCenter:[sender locationInView:self.view]];
}
}
弹出框.m
-(void)viewWillAppear:(BOOL)animated
{
panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:creatorViewController action:@selector(panGesture:)];
[self.view addGestureRecognizer:panGestureRecognizer];
}
使用此代码调用 UIPanGestureRecognizer,但由于弹出框被视为 firstResponder 而仅持续大约一秒钟。如何将 firstResponder 更改为 mainViewController 的视图?
在一个不相关的注释中,如果用户一秒钟没有移动他的手指然后移动手指,则 UIPanGestureRecognizer 不会识别平移。打开同时识别手势并没有改变任何东西