2013-04-26 3 views
1

Я использую следующий код, чтобы сделать снимок экрана на моем iPhone и сохранить его в фотоальбоме. Я бы хотел, чтобы кнопка совместного доступа автоматически отправляла этот снимок экрана и в Facebook. Кто-нибудь есть идеи, как реализовать?Поделиться скриншотом на Facebook

- (UIImage*)captureView:(UIView *)view 
{ 
CGRect rect = [[UIScreen mainScreen] bounds]; 
UIGraphicsBeginImageContext(rect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[view.layer renderInContext:context]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return img; 
} 

- (void)saveScreenshotToPhotosAlbum:(UIView *)view 
{ 
UIImageWriteToSavedPhotosAlbum([self captureView:self.view], nil, nil, nil); 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
[self setUpData]; 

CGRect frame = self.view.bounds; 
frame.size.height -= 90; 

self.tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain]; 
[self.tableView setBackgroundColor:[UIColor clearColor]]; 
[self.tableView setDataSource:self]; 
[self.tableView setDelegate:self]; 

[self.view addSubview:self.tableView]; 

UIBarButtonItem *shareBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(saveScreenshotToPhotosAlbum:)]; 
[self.navigationItem setRightBarButtonItem:shareBtn]; 

} 

ответ

3

Ну, вы можете использовать встроенную интеграцию Facebook iOS6. Включите Social framwork в Build Phases Код должен выглядеть би похож на этот отрезала:

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]){ 
    mySLComposerSheet = [[SLComposeViewController alloc] init]; 
    mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 
    [mySLComposerSheet setInitialText:@"Some Text"]; 
    [mySLComposerSheet addImage:[self captureView:self.view]]; 
    [self presentViewController:mySLComposerSheet animated:YES completion:nil]; 
} 

* Обратите внимание, это не будет «автоматически» поделиться скриншот, но он присоединит его к Facebook Написать лист и пользователь может отправьте его, если он захочет. Чтобы сделать это автоматически, вам нужно будет сделать более глубокую интеграцию с Facebook, и пользователь должен дать разрешение на ваше приложение для публикации на своей стене. Это также необходимо сделать с каркасом Social или ShareKit, если проект Deployment target ниже iOS 6.0

+0

Хорошо, как мне превратиться, чем в кнопку на панели навигации? – Steve

+0

Jus добавьте этот код в свой метод 'saveScreenshotToPhotosAlbum:', и он должен работать. –

+0

Я добавил Социальные рамки и импорт. Теперь я получаю использование незаявленного идентификатора 'mySLComposerSheet' – Steve

Смежные вопросы