1

だから私はこのコードを使ってビューを切り替えようとしていました:

CATransition *applicationLoadViewIn = [CATransition animation];

    [applicationLoadViewIn setDuration:1];

    [applicationLoadViewIn setType:kCATransitionReveal];

    [applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];

    MyViewControllerClass *theControllerIAmSwitchingTo = [[MyViewControllerClass alloc] init];

    [[theControllerIAmSwitchingTo.view layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];

しかし、コードは機能しません。エラーはなく、コードは正常に実行されますが、何も実行されません。ここで何が間違っていますか?

4

2 に答える 2

1

アニメーションを親ビューのレイヤーに追加してから、ビューを親ビューのサブビューとして追加する必要があります。

だから代わりに

[[theControllerIAmSwitchingTo.view layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];

使用する必要があります

[parentView.layer addAnimation:animation forKey:kCATransitionReveal];
[parentView addSubview:theControllerIAmSwitchingTo.view];
于 2010-12-22T07:23:49.100 に答える
1

次のようにしてください:

 CATransition *applicationLoadViewIn = [CATransition animation];

    [applicationLoadViewIn setDuration:1];

    [applicationLoadViewIn setType:kCATransitionReveal];

    [applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];

    MyViewControllerClass *theControllerIAmSwitchingTo = [[MyViewControllerClass alloc] init];

    [[theControllerIAmSwitchingTo.view layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];

    [self.navigationController pushViewController:theControllerIAmSwitchingTo animated:NO];

問題は、ナビゲーション スタックにビューを追加していないことに気付きました。そのため、ビューが読み込まれず、アニメーションが表示されません。

于 2010-12-22T07:29:25.373 に答える