Instagram风格的iOS 6分享。
集成DMActivityInstagram的最简单方法是使用CocoaPods。
pod 'DMActivityInstagram', '0.0.3'
如果您还像史前时代的穴居人一样停留在CocoaPods之前,请将以下文件添加到您的项目中
DMActivityInstagram.m
DMActivityInstagram.h
DMResizerViewController.h
DMResizerViewController.m
DMResizerViewController.xib
instagram.png
[email protected]
instagram~ipad.png
[email protected]
请参阅示例项目中的DMAIDemoViewController
,以获取有关如何使用此类的详细信息。简而言之
DMActivityInstagram *instagramActivity = [[DMActivityInstagram alloc] init];
NSString *shareText = @"CatPaint #catpaint";
NSURL *shareURL = [NSURL URLWithString:@"http://catpaint.info"];
NSArray *activityItems = @[self.imageView.image, shareText, shareURL];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[instagramActivity]];
[self presentViewController:activityController animated:YES completion:nil];
在iPad上会更复杂,因为您需要使用UIPopoverController,但基本思想是一样的。请参阅示例了解用法。
默认情况下,DMActivityInstagram
仅在检测到设备上安装了Instagram(通过canOpenURL:
)时才会出现在UIActivityViewController
选项列表中。这意味着它不会出现在模拟器上,或者在没有安装Instagram的设备上。
这些类支持ARC,但您可以使用-fobjc-arc
选项在非ARC项目中使用它们(如果使用CocoaPods,则无需这样做)。
如果您在iPad应用程序中创建方形图像,则需要设置UIActivityInstagram
的presentFromButton
属性。这应该是您从中显示UIActivityViewController
的UIBarButtonItem
。如果图像不是方形的,该属性将被覆盖,并且从调整大小视图中显示UIDocumentInteractionController
。
欢迎提交拉取请求。如果您使用了本库,并希望回报,请考虑购买我的其中一些或者所有应用程序(例如CatPaint和Iconizer)。显然,接受装满现金的信封。
注意:在开发者文档中它说
此方法默认实现返回nil。子类可以使用带有视图控制器提供的额外UI的方法来覆盖此方法以返回view controller。如果此方法返回有效的对象,则系统为您呈现返回的视图控制器,而不是调用performActivity方法。在iPad上,您的视图控制器在弹出视图中呈现。在iPhone和iPod touch上,您的视图控制器以模态方式呈现。
然而,实验证据却表明情况并非如此。我的iPad 2,运行iOS 6系统,显示返回的DMResizerViewController是一个模态视图,而不是弹出视图。如果有人知道原因,请告知。