7

我正在使用cell.image = an animated gif file(单元格是UITableViewCell)。但是,它没有动画。有什么办法可以解决吗?

4

5 回答 5

16

UIImageView提供必要的 API 来制作您自己的动画,如下所示:

UIImage *frame1 = [UIImage imageNamed:@"frame1.png"];
UIImage *frame2 = [UIImage imageNamed:@"frame2.png"];
UIImage *frame3 = [UIImage imageNamed:@"frame3.png"];
UIImage *frame4 = [UIImage imageNamed:@"frame4.png"];


UIImageView.animationImages = [[NSArray alloc] initWithObjects:frame1, frame2, frame3, frame4, nil];
UIImageView.animationDuration = 1.0 //defaults is number of animation images * 1/30th of a second
UIImageView.animationRepeatCount = 5; //default is 0, which repeats indefinitely
[UIImageView startAnimating];

//[uiImageView stopAnimating];
于 2009-06-10T01:36:56.133 回答
2

在 iPhone OS 3.0 中,不再支持 cell.image。相反,单元格有一个 imageView 属性,它为您提供了更多的灵活性。您可以将动画 gif 拆分为单独的图像,然后执行以下操作:

anImageView *UIImageView = [[UIImageView alloc] init];
anImageView.animationImages = imagesArray; //this is an array of UIImages you have to create
于 2009-06-10T01:16:38.577 回答
1

只有 UIWebView 支持显示动画 GIF 文件。

于 2010-01-05T13:45:52.063 回答
1

你能不能看看下面的代码,我希望它对你有帮助......

1.去掉cellforatindexpath中的动画代码

2. 显示单元格时对其进行动画处理

3. 隐藏单元格时停止动画

4.会提升App的性能

5.节省更多内存

    -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    NSArray *myImageArray = [NSArray arrayWithObjects:
                             [UIImage imageNamed:@"image1.png"],
                             [UIImage imageNamed:@"image2.png"],
                             [UIImage imageNamed:@"image3.png"],
                             [UIImage imageNamed:@"image4.png"],
                             [UIImage imageNamed:@"image5.png"],nil];

    [cell.imageView setAnimationImages:myImageArray];
    cell.imageView.animationDuration = 4.0;
    cell.imageView.animationRepeatCount = 1;
    [cell.imageView startAnimating];
    }

     -(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    [cell.imageView stopAnimating];
    [cell.layer removeAllAnimations];
    }  
于 2016-01-12T11:06:04.120 回答
-2

您唯一的选择是编写自己的在视图中呈现 gif 的机制或等待苹果修复它。

于 2009-06-10T00:37:45.550 回答