統計情報(30日間)


最新情報をツイート

人気の投稿

UIActivityViewControllerの代替ライブラリ

このエントリーをはてなブックマークに追加

iOS5でも使えるUIActivityViewControllerの代替ライブラリ。


FacebookやTwitterの他、tumblrやpokcetなども用意されている。

こんな感じで使いたいActivityのインスタンスを作ってコントローラーを呼び出す。
REFacebookActivity *facebookActivity = [[REFacebookActivity alloc] init];
    RETwitterActivity *twitterActivity = [[RETwitterActivity alloc] init];
データはNSDictionary経由で渡す。
activityViewController.userInfo = @{
                                        @"image": [UIImage imageNamed:@"Flower.jpg"],
                                        @"text": @"Hello world!",
                                        @"url": [NSURL URLWithString:@"https://github.com/romaonthego/REActivityViewController"],
                                        @"coordinate": @{@"latitude": @(37.751586275), @"longitude": @(-122.447721511)}
                                        };


ActivityはREActivityのサブクラスにしてinitを作るだけ。
- (id)init
{
    return [super initWithTitle:@"Copy"
                          image:[UIImage imageNamed:@"REActivityViewController.bundle/Icon_Copy"]
                    actionBlock:^(REActivity *activity, REActivityViewController *activityViewController) {
                        [activityViewController dismissViewControllerAnimated:YES completion:nil];
                        NSDictionary *userInfo = activityViewController.userInfo;
                        
                        NSString *text = [userInfo objectForKey:@"text"];
                        UIImage *image = [userInfo objectForKey:@"image"];
                        NSURL *url = [userInfo objectForKey:@"url"];
                        if (text)
                            [UIPasteboard generalPasteboard].string = text;
                        if (url)
                            [UIPasteboard generalPasteboard].URL = url;
                        if (image) {
                            NSData *imageData = UIImageJPEGRepresentation(image, 0.75f);
                            [[UIPasteboard generalPasteboard] setData:imageData
                                                    forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];
                        }
                    }];
}


ライセンス:MIT
CococaPod対応



Leave a Reply