我正在使用cell.image = an animated gif file
(单元格为UITableViewCell
)。但是,它没有动画。有什么办法可以解决吗?
答案 0 :(得分: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];
答案 1 :(得分: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
答案 2 :(得分:1)
只有UIWebView支持显示动画GIF文件。
答案 3 :(得分:1)
您能否看到以下代码,希望对您有所帮助......
<强> 1。删除cellforatindexpath中的动画代码
<强> 2。在单元格显示时为其设置动画
第3。隐藏细胞时停止动画
<强> 4。将改善应用程序的性能
<强> 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];
}
答案 4 :(得分:-2)
您唯一的选择是编写自己在视图中呈现gif的机制或等待苹果修复它。