想使用UIPasteBoard将gif粘贴到邮件窗口中

时间:2011-08-08 12:55:45

标签: ios gif uipasteboard

我想展示一个gif,所以我做的是我拆分我的gif并使用此链接在UIImageView的动画中显示它。

http://iphonenativeapp.blogspot.com/2011/03/how-to-show-animation-in-iphoneipad-app.html

现在,我想让用户复制gif并将其粘贴到邮件应用程序中。

如果我使用包含gif的所有分割图像的数组,则将4-5张图像粘贴到邮件应用程序中。

请帮我粘贴gif。谢谢!

4 个答案:

答案 0 :(得分:7)

要从similar question复制/粘贴我自己的答案。

NSString *gifPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"volleyball.gif"];
NSData *gifData = [[NSData alloc] initWithContentsOfFile:gifPath];
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setData:gifData forPasteboardType:@"com.compuserve.gif"];
[gifData release];

编辑刚刚注意到您自己问了这两个类似的问题。

答案 1 :(得分:0)

虽然您可以使用基于HTML的电子邮件 - 例如:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
NSString *emailBody = @"<p><b>Hello World</b></p>";                         
[picker setMessageBody:emailBody isHTML:YES];

您无法像在HTML中那样插入内嵌图像。 HTML电子邮件中的内嵌图像使用单独的MIME部分,这些部分通过消息正文中的content-id元素引用。 MFMailComposeViewController不允许您控制邮件的MIME结构,因此不允许您添加内联引用的内容部分。

将图像数据嵌入到<img>标签中,因为base64有时会起作用 - 这取决于用于呈现它的电子邮件客户端和浏览器 - 但它不是广泛可移植的。

答案 2 :(得分:0)

FWIW,动画GIF似乎与iOS 6中的新共享表中的电子邮件一起使用,如果用户选择邮件,它将自动在电子邮件中填充gif:

NSString *gifPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"volleyball.gif"];
NSData *gifData = [[NSData alloc] initWithContentsOfFile:gifPath];
NSArray *activityItems = [NSArray arrayWithObjects:@"Here is an awesome body for the email.",gifData,nil];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityController.completionHandler = ^(NSString *activityType, BOOL completed){
  // item was shared!
  // you can check if it was email (or another type, like facebook or twitter) in the *activityType.
  // completed is YES if they actually shared it, if they canceled, completed will be NO.
};
[navigationController presentViewController:activityController animated:YES completion:nil];

答案 3 :(得分:-1)

由于iOS不支持动画GIF格式,我认为不可能在邮件应用程序中复制/粘贴gif。但是,您可以尝试附加gif文件(不是分割图像)&amp;使用MFMailComposeViewController撰写新电子邮件。如果您在非iOS设备上打开附件,您应该能够看到动画GIF。

HTH,

阿克沙伊