2011-08-08 3 views
3

gifを表示したかったので、私は自分のgifを分割し、このリンクを使ってUIImageViewのアニメーションで表示しました。UIPasteBoardを使用してGIFをメールウィンドウに貼りたい

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

は今、私は、ユーザーがそのGIF画像をコピーして、メールアプリに貼り付けしたいです。

私がgifのすべての分割画像を含む配列を使用した場合、メールアプリケーションに4-5個の画像が貼り付けられます。

gifを貼り付ける手助けをしてください。ありがとう!

答えて

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

編集はちょうどあなたがこれらの2つの同様の質問を自分に尋ねた気づきました。

+0

ありがとう!今働いている。実際に私は昨日このことを試してみましたが、forPasteboardTypeセクションでうんざりしていたので、それはうまくいきませんでした。私はとても絶望的になったので、もう一度投稿しました... Btw、「com.compuserve.gif」は何ですか?または、 "forPasteboardType"のパラメータとして使用する必要があるもの????? – mayuur

+0

[UTI](http://www.escape.gr/manuals/qdrop/UTI.html)です。 –

+0

私はそれを持っています。ありがとう、トン! – mayuur

-1

iOSはアニメーションGIF形式をサポートしていないため、メールアプリでgifをコピー/貼り付けすることはできません。ただし、MFMailComposeViewControllerを使用して、新しいメールを作成しているgifファイル(分割画像ではない)を添付してみてください。& iOS以外の端末で添付ファイルを開くと、アニメーションGIFが表示されるはずです。

HTH、

Akshay

+0

いいえ、私はSafariでそれを試してみましたiPhone用ブラウザ。私はgifを含むURLを開き、それをコピーしてメールウィンドウに貼り付けました。そして、うまくいきました。ですから、通常はgifをコピーすることも可能です! – mayuur

+0

その場合、gifファイルを分割イメージの配列ではなく、UIPasteBoardに貼り付ける必要があります。ユーザーがあなたのUIImageViewを長押ししたときにコピーボタンを提供するか、カスタムUIMenuItemを追加するなど、gifのコピーを許可する方法を見なければなりません。 – Akshay

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電子メールのインラインイメージは、メッセージ本文からのcontent-id要素を介して参照される別々のMIME部分を使用します。 MFMailComposeViewControllerは、メッセージのMIME構造を制御できないため、インラインで参照されるコンテンツ部分を追加することはできません。

画像データを<img>タグにbase64として埋め込むことは時々動作します - 電子メールクライアントとそれをレンダリングするブラウザに依存しますが、広く移植可能ではありません。

0

FWIW、アニメーションGIFは、ユーザーがメールを選択した場合、自動的に電子メールでGIFを移入うのiOS 6での新しい共有シート、に電子メールで動作するように表示されます。

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]; 
関連する問題