在将superview添加到子视图后,iOS UIImageView animationImages未更新

时间:2013-07-22 03:12:37

标签: ios animation uiimageview

我对animationImage UIImageView有一个小问题。 我首先使用animationImages创建一个UIImageView,然后将其添加为另一个视图的子视图,名为baseView:

UIImageView* imageToday = [[[UIImageView alloc] initWithFrame:CGRectMake(YOUR_FRAME)] autorelease];
[baseView addSubview:imageToday];
imageToday.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"PNGIMAGE_1"], [UIImage imageNamed:@"PNGIMAGE_2"], nil];
imageToday.animationDuration = 2.0f;
imageToday.animationRepeatCount = 0xFFFF;
[imageToday startAnimating];

出于某种原因,superview baseView将重新添加到其superview的子视图中。 然后当我尝试更新imageToday的animationImages并重新启动动画时,动画图像不会改变。

imageToday.animationImage = [NSArray arrayWithObjects:[UIImage imageNamed:@"PNGIMAGE_3"], [UIImage imageNamed:@"PNGIMAGE_4"], nil];
[imageToday startAnimating];

视图的简单层次结构:

- UIViewController
    - baseView
        - imageToday

如果基本视图控制器被导航控制器移出(显示/推送)和后退(关闭/弹出),或者如果我按下设备HOME按钮并返回到我的应用程序,则上述代码中的animationImages部分已正确更改并显示在UI上。

任何建议或解决方案将不胜感激!谢谢。

修改 我没有在baseView上使用removeFromSuperview,同时将其重新添加到父视图控制器的视图中,但只需再次添加并让UIKit为我管理视图层次结构,如下面的代码所示

[self.view addSubview:self.baseView];

0 个答案:

没有答案