iTunes iPad アプリで見られるフリップ アニメーションをシミュレートしようとしています。メインの注目ページで、New Releases リストの小さなポスターの 1 つをタップすると、そのポスターが開き、映画の詳細がすべて表示されます。
ポスターがタップされたら、次のようにします。
//...create newView
[self.view addSubview:poster]; //because the poster was previously in a scrollview
[UIView transitionWithView:self.view duration:3
options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[poster removeFromSuperview];
[self.view addSubview:newView];
}
completion:NULL];
しかし... ポスターだけでなく、ビュー全体が反転します。また、FlipFromLeft を指定したにもかかわらず、水平方向ではなく垂直方向に反転します。私は何を間違っていますか?
編集:これを行うには、ある種のコンテナビューを使用する必要があるようです。だから私はそれを作成し、それにポスターを追加してから、テスト用のダミー UIView を作成しました:
CGPoint newPoint = [self.view convertPoint:CGPointMake(poster.frame.origin.x, poster.frame.origin.y) fromView:[poster superview]];
poster.frame = CGRectMake(0, 0, poster.frame.size.width, poster.frame.size.height);
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(newPoint.x, newPoint.y, poster.frame.size.width, poster.frame.size.height)];
[self.view addSubview:containerView];
[containerView addSubview:poster];
UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, containerView.frame.size.width, containerView.frame.size.height)];
testView.backgroundColor = [UIColor redColor];
[UIView transitionWithView:containerView duration:3
options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[poster removeFromSuperview];
[containerView addSubview:testView];
}
completion:NULL];
これで、ポスターの代わりに赤い UIView が表示されますが、フリップ アニメーションはまったくありません。なぜだめですか?