7


4

アニメーションGIFはiPhoneでは機能しません

私は「+ cell.image =アニメーションgifファイル」を使用しています(セルは「+ UITableViewCell」です)。 ただし、アニメートされません。 修正する方法はありますか。

5 Answer


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


2


iPhone OS 3.0では、cell.imageはサポートされなくなりました。 代わりに、セルはimageViewプロパティを持っています。これはあなたにもう少し柔軟性を与えます。 アニメーションGIFを別々の画像に分割してから、次のようにすることができます。

anImageView * UIImageView = [[UIImageView割り当て] init]; anImageView.animationImages = imagesArray; //これはあなたが作成しなければならないUIImagesの配列です


1


アニメーションGIFファイルの表示をサポートするのはUIWebViewのみです。


1


次のコードを見てもらえますか?

  • 1 cellforatindexpath *のアニメーションコードを削除します。

  • 2 セルが表示されているときにアニメートする*

  • 3 セルを隠しながらアニメーションを停止*

  • 4 App *のパフォーマンスを向上させます

  • 5 より多くのメモリを節約する*

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)forRowAtIndexPath:(NSIndexPath *)indexPath {NSArray * myImageArray = [NSArray arrayWithObjects:[UIIイメージimageNamed:@ "image1.png"]:name] @ "image2.png"]、[UII画像imageNamed:@ "image3.png"]、[UII画像imageNamed:@ "image4.png"]、[UII画像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 *)セルforRowAtIndexPath:(NSIndexPath *)indexPath {[cell.imageView stopAnimating]; [cell.layer removeAllAnimations]; }


-2


あなたの唯一の選択は、ビュー内でgifをレンダリングする独自のメカニズムをコーディングするか、appleがそれを修正するのを待つことです。