0

私はこのアニメーションブロックを持っています:

[UIView animateWithDuration:10 animations:^{
            CGPoint centerLeft;
            centerLeft.x = self.leftMapPane.center.x - 100;
            centerLeft.y = self.leftMapPane.center.y;
            CGRect leftMove = CGRectMake(self.leftMapPane.frame.origin.x - 100, self.leftMapPane.frame.origin.x, self.leftMapPane.frame.size.width,     self.leftMapPane.frame.size.height);
            [self.leftMapPane setFrame:leftMove];
            [self.leftMapPane setCenter:centerLeft];
        }];

なんらかの理由で、アニメーション ブロックの中に入っていますが、画面上にある mapViews は移動しません。マップを移動することについて話しているのではなく、マップを含むビュー、別名マップビューについて話していることに注意してください。

何かご意見は?

4

1 に答える 1

2

アニメーションは viewDidLoad では機能しません。これは、その時点でビューがメモリに読み込まれているが、必ずしもビュー階層に追加されていないためです。したがって、ビューをアニメーション化しようとしても機能しません。

代わりに、アニメーション呼び出しを viewDidAppear に配置すると、機能するはずです。このようにして、アニメートしているビューがビュー階層にあることを確認できます。アニメーション コードを使用してサンプル プロジェクトでこれを試したところ、問題なく動作しました。

于 2013-01-17T16:55:08.907 に答える