在超级视图中移动子视图
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".
我有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".