Хотите вставить gif в почтовое окно, используя UIPasteBoard - PullRequest
3 голосов
/ 08 августа 2011

Я хотел показать gif, поэтому я разделил свой gif и показал его в анимации для UIImageView по этой ссылке.

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

Теперь я хочу скопировать этот gif-файл и вставить его в почтовое приложение.

Если я использовал массив, который содержал все разделенные изображения gif, то в почтовое приложение вставлялось 4-5 изображений.

Пожалуйста, помогите мне вставить GIF. Спасибо!

Ответы [ 4 ]

7 голосов
/ 08 августа 2011

Собираюсь скопировать / вставить свой собственный ответ из подобного вопроса .

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

Редактировать только что заметил, что вы сами задали эти 2 похожих вопроса.

0 голосов
/ 21 марта 2013

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];
0 голосов
/ 08 августа 2011

Хотя вы можете использовать электронную почту на основе 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 иногда будет работать -это зависит от почтового клиента и браузера, который использовался для его рендеринга, но в целом он не переносимый.

0 голосов
/ 08 августа 2011

Поскольку iOS не поддерживает анимированный формат GIF, я не думаю, что возможно скопировать / вставить GIF в почтовое приложение. Тем не менее, вы можете попробовать прикрепить файл gif (не разделенные изображения) и создать новое письмо, используя MFMailComposeViewController. Если вы откроете вложение на устройстве, отличном от iOS, вы сможете увидеть анимированный GIF.

НТН,

Акшай

...