テスト プロジェクトのメイン ビュー コントローラーからの viewDidLoad は次のとおりです。
- (void)viewDidLoad
{ [super viewDidLoad];
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 300)];
[self.view addSubview:containerView];
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[redView setBackgroundColor:[UIColor redColor]];
[containerView addSubview:redView];
UIView *yellowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[yellowView setBackgroundColor:[UIColor yellowColor]];
[UIView transitionWithView:containerView duration:3
options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[redView removeFromSuperview];
[containerView addSubview:yellowView];
}
completion:NULL];
}
黄色のボックスが表示されます。どの UIViewAnimationOption を試しても、アニメーションはありません。どうして???
編集:私はまた、performSelector withDelay を使用して、アニメーションを viewDidLoad から別のメソッドに移動しようとしました。同じ結果 - アニメーションなし。
これも試してみました: [UIView transitionFromView:redView toView:yellowView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
それでも、黄色のビューが表示されるだけです。アニメーションなし。