0

我对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];

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

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

视图的简单层次结构:

- UIViewController
    - baseView
        - imageToday

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

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

编辑: 我没有在 baseView 上使用 removeFromSuperview 将它重新添加到父视图控制器的视图中,而是再次添加并让 UIKit 为我管理视图层次结构,如下面的代码所示

[self.view addSubview:self.baseView];
4

0 回答 0