在超级视图中移动子视图

Moving subview in a super view

我有view1、view2、view3․ view2是view1的子视图,view3是view2的子视图。我想将 view3 移动到 view1 和 view2 中,但是当我在 view1 中释放它时,我无法再次拾取它。

这是我试过的代码。

UIPanGestureRecognizer* panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self.thriedView addGestureRecognizer:panGesture];

- (void) handlePan: (UIPanGestureRecognizer*) panGesture {
    if (panGesture.state == UIGestureRecognizerStateChanged) {
        CGPoint translation = [panGesture translationInView:panGesture.view];
        panGesture.view.center = CGPointMake(panGesture.view.center.x + translation.x,
                                             panGesture.view.center.y + translation.y);

        [panGesture setTranslation:CGPointZero inView:panGesture.view];
    }
}

一旦你在第二个视图之外释放第三个视图,它就在它的父视图之外。默认情况下,不能触摸其父视图之外的视图(即它不能接收触摸事件)。这就是为什么你 "can't pick it again".