0

以下で初めて正常に動作するコードを使用して、アニメーション効果のあるサブビューを追加しようとしています。

CATransition *transition = [CATransition animation];
transition.duration = 1.0;
transition.type = kCATransitionMoveIn; 
transition.subtype = kCATransitionFromRight;

[newView.layer removeAllAnimations]
[newView.layer addAnimation:transition forKey:nil];
[self.masterview addSubview:newView];

スーパービューからビューを削除する newView には戻るボタンがあります。

[newView removeFromSuperview];

上記のコードを使用して newView をサブビューとして再度追加しようとすると、最初にビューがサブビュー (アニメーションなし) として追加され、再びアニメーションが追加されます。

4

3 に答える 3

0

スーパービューからnewViewを削除する代わりに、次のようなフレームを設定してみませんか

newView.frame = CGRectMake(0, -500, CGRectGetWidth(newView.frame), CGRectGetHeight(newView.frame));

表示されないように非表示にできます。ただのアイデア。:-)

于 2012-11-17T10:57:09.280 に答える
0

スーパー ビューからビューを削除すると、フレームはそのまま保持されます。そのため、newView の場所を新しい場所に再度配置するように変更する必要があると思います。

于 2012-11-17T11:47:25.170 に答える