0

有没有办法在触摸事件中途改变第一响应者?

我有一个弹出框,如果它识别出 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 不会识别平移。打开同时识别手势并没有改变任何东西

4

0 回答 0