【发布时间】:2013-11-10 01:25:59
【问题描述】:
我在大多数支持 iOS 7 的 iOS 应用程序中都看到了这种共享选项格式(如下图所示)。 是否有默认代码/框架可用于实现此共享选项,如下图所示?
【问题讨论】:
标签: ios ios7 share social-networking airdrop
我在大多数支持 iOS 7 的 iOS 应用程序中都看到了这种共享选项格式(如下图所示)。 是否有默认代码/框架可用于实现此共享选项,如下图所示?
【问题讨论】:
标签: ios ios7 share social-networking airdrop
您正在寻找的是UIActivityViewController。
既然你问了一个一般性问题,我只能给你一个documentation的链接
【讨论】:
除了接受的答案,一小段示例代码
- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(NSURL *)url
{
NSMutableArray *sharingItems = [NSMutableArray new];
if (text) {
[sharingItems addObject:text];
}
if (image) {
[sharingItems addObject:image];
}
if (url) {
[sharingItems addObject:url];
}
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}
致电shareText,将不想分享的内容留在nil。
[self shareText:@"Hello world" andImage:nil andUrl:nil];
【讨论】:
您发布的图片中的 Controller 是类文档中的 UIActivitiyViewController this is a link
【讨论】:
一些很好的示例代码: How to display the default iOS 6 share action sheet with available share options?
我知道这个问题是 iOS 7 特有的,并且代码示例指定了 iOS 6,但是 AFAICT 他们非常相似,可能会发现示例代码和我一样有用。
【讨论】:
UIActivityViewController 是您正在寻找的。
您可以指定项目或应用程序
UIActivityViewController *actCont = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
【讨论】:
只需将以下代码用于默认共享。您可以根据需要将更多项目添加到shareItems 数组中。
NSMutableArray *shareItems = [[NSMutableArray alloc] initWithObjects:
@"Hello",
[UIImage imageNamed:@"your_image.png"],
@"http://google.com/", nil];
[self shareItemToOtherApp:shareItems];
以下方法是默认将文本或图像共享到其他应用程序:-
-(void)shareItemToOtherApp:(NSMutableArray *)shareItems{
UIActivityViewController *shareController = [[UIActivityViewController alloc]
initWithActivityItems: shareItems applicationActivities :nil];
[shareController setValue:@"Sharing" forKey:@"subject"];
shareController.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll];
shareController.completionHandler = ^(NSString *activityType, BOOL completed)
{
//NSLog(@" activityType: %@", activityType);
//NSLog(@" completed: %i", completed);
};
[self presentViewController: shareController animated: YES completion: nil];
}
如果您想制作 自定义分享 表格,请使用以下代码。为此,您必须导入 <Social/Social.h> 框架。
-(void)shareOnFacebook:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *faceSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// NSLog(@"%@", messageField.text);//This returns the appropriate string
[faceSheet setInitialText:@"Hellooooooo"];
//The facebook VC appears, but initial text is not set to messageField.text
[self presentViewController:faceSheet animated:YES completion:nil];
}
else
{
NSLog(@"Please first install Application and login in Facebook");
}
}
-(void)shareOnTwitter:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *tweetSheet = [SLComposeViewController
composeViewControllerForServiceType:SLServiceTypeTwitter];
[tweetSheet setInitialText:@"Hello"];
[self presentViewController:tweetSheet animated:YES completion:nil];
}
else{
NSLog(@"Please first install Application and login in Twitter");
}
}
希望,这就是您要找的。任何问题都可以回复我。 :)
【讨论】: