如何在iOS中共享gif动画图像

如何在iOS中共享gif动画图像,ios,Ios,我不知道如何使用UIActivityViewController共享动画.gif图像。请帮助我解决此问题。提前谢谢 see this image .i am displaying this type of images and to share these images I am using uiactivity view but it is not animating .it's just displaying image if(imgFrameCount==1) {

我不知道如何使用UIActivityViewController共享动画.gif图像。请帮助我解决此问题。提前谢谢

see this image .i am displaying this type of images and to share these images I am using uiactivity view but it is not animating .it's just displaying image 



if(imgFrameCount==1)

    {
        imgFrameCount++;
        NSURL *url1=[[NSBundle mainBundle]URLForResource:@"animated2" withExtension:@"gif"];
        self.firstImage=[UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url1]];
        self.frameImage.image = self.firstImage;
    }
else if (imgFrameCount==2)
{
    imgFrameCount++;
    NSURL *url2=[[NSBundle mainBundle]URLForResource:@"animated3" withExtension:@"gif"];
    self.firstImage=[UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url2]];
    self.frameImage.image = self.firstImage;
}
尝试使用此代码

NSArray *animeImages = [NSArray arrayWithObjects:
                                    [UIImage imageNamed:@"tmp-0.png"],
                                    [UIImage imageNamed:@"tmp-1.png"],
                                    [UIImage imageNamed:@"tmp-2.png"],
                                    [UIImage imageNamed:@"tmp-3.png"],
                                    [UIImage imageNamed:@"tmp-4.png"],
                                    [UIImage imageNamed:@"tmp-5.png"],
                                    [UIImage imageNamed:@"tmp-6.png"],
                                    [UIImage imageNamed:@"tmp-7.png"],
                                    [UIImage imageNamed:@"tmp-8.png"],
                                    [UIImage imageNamed:@"tmp-9.png"],
                                    [UIImage imageNamed:@"tmp-10.png"],
                                    [UIImage imageNamed:@"tmp-11.png"],
                                    nil];
imageView.image = [UIImage animatedImageWithImages:animeImages duration:2.0];

现在,您可以使用此imageView并设置其各种属性,如frame和hidden等,使其像活动指示器一样工作。数组中传递的图像是动画gif的分解。使用任何在线工具都可以轻松完成。FWIW,我在尝试在ActivityItems数组中包含UIImage时遇到了相同的问题。它不适用于普通UIImage、使用UIImage+animagedGIF类别的UIImage或FLAnimatedImage

要解决此问题,至少在iOS8上,只需将gif作为NSData对象而不是UIImage添加到ActivityItems数组中即可

例如,假设从URL请求gif:

NSURL *imagePath = [NSURL URLWithString:@"http://i.imgur.com/X4oonnm.gif"];
NSData *animatedGif = [NSData dataWithContentsOfURL:imagePath];
NSArray *sharingItems = [NSArray arrayWithObjects: animatedGif, nil];

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];

这应该可以做到。扩大乔丹·博尼蒂斯的答案。诀窍是用
NSURL
的内容创建一个
NSData
对象

- (void)share
{
  NSURL *imageURL = [NSURL URLWithString:@"http://...url..of..gif];
  NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
  NSArray *objectsToShare = @[imageData];

  UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

  NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                 UIActivityTypePrint,
                                 UIActivityTypePostToVimeo];

  activityVC.excludedActivityTypes = excludeActivities;

  [self presentViewController:activityVC animated:YES completion:nil];
}

这是一个棘手的问题,因为不同的共享接收器处理数据的方式不同。因此,在其他答案中提到的NSData解决方案在共享到两个不同的应用程序时确实有效,但对大多数应用程序都不起作用。似乎接收器需要足够的智能来解码字节数组,并确定它确实是一个动画gif,但大多数人并没有这样做。一个更好的方案似乎是发送具有适当扩展名的文件引用,因为大多数应用程序都会识别文件扩展名。因此,我目前的策略是从一个名为“share.gif”或类似文件中进行写入。当以这种方式共享几乎所有可以处理动画gif的应用程序时,请设法正确接收它。

共享gif图像是什么意思?请指定并提供代码和/或屏幕截图。请答复我是否可以使用uiactivity视图共享gif动画图像我已共享gif动画图像请检查。抱歉,没有图像或链接处于活动状态请查看此url。。。谢谢,我已经完成了显示图像的编码。实际上我有.gif图像…我使用的是direct.gif图像来显示,显示效果很好,但我的问题是我们如何共享这些.gif图像。共享是什么意思?请发布代码,直接在iOS中显示动画GIF。我一直在搜索,但没有找到潜在的解决方案。如果(imgframecont==1){imgframecont++;NSURL*url1=[[NSBundle mainBundle]URLForResource:@“animated2”带扩展名:@“gif”];self.firstImage=[UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url1]];self.frameImage.image=self.firstImage;}请看我的代码,很抱歉打扰您……是的,我看了。但我没有运行它。它是否在UIImageView中显示动画gif?photoData是在哪里定义的?@AlexKoren,很抱歉。这是对NSDictionary的引用,其中包含我希望包含在ActivityViewController中的额外信息(如图像标题、标题和url),我已更新示例以删除它,因为在提供有效解决方案时不需要它。这不起作用。它显示一个静态图像,尽管有gif的URL。