たとえば、UIViewController
2 を含む があります。UIScrollViews
scrollView1
scrollView2
scrollView1
の 1つUIViews
をタップすると、UIViews
そこに移動したいscrollView2
UIView
に属するa をタップするとscrollView1
、 内のメソッドUIViewController
が呼び出さview
れ、 がパラメーターとして渡されます。
たとえば、UIViewController
2 を含む があります。UIScrollViews
scrollView1
scrollView2
scrollView1
の 1つUIViews
をタップすると、UIViews
そこに移動したいscrollView2
UIView
に属するa をタップするとscrollView1
、 内のメソッドUIViewController
が呼び出さview
れ、 がパラメーターとして渡されます。
そのメソッドでは、次のように書く必要があります。
[view removeFromSuperview];
[scrollView2 addSubview:view];
編集:
アニメーション化された動きの場合は、次のようなものを試してください:
CGPoint originalCenter = [self.view convertPoint:view.center fromView:scrollView1];
[view removeFromSuperView];
[self.view addSubview:view];
view.center = originalCenter;
CGPoint destinationPointInSecondScrollView = ; // Set it's value
CGPoint finalCenter = [self.view convertPoint:destinationPointInSecondScrollView fromView:scrollView2];
[UIView animateWithDuration:0.3
delay:0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
view.center = finalCenter;
} completion:^(BOOL finished) {
[view removeFromSuperView];
[scrollView2 addSubview:view];
view.center = destinationPointInSecondScrollView;
}];
次の2つのscrollViewがプロパティとして宣言されているとします。
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)]
for (UIView *view in self.scrollView1.subviews) {
[view addGestureRecognizer:gesture];
}
}
- (void)viewTapped:(UITapGestureRecognizer *)gesture
{
UIView *view = gesture.view;
[self moveToScrollView2:view];
}
- (void)moveToScrollView2:(UIView *)view
{
[view removeFromSuperview];
[self.scrollView2 addSubview:view];
}