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 回答