我正在为我的UIActivityItemProvider对UIActivityViewController进行子类化,这样当用户选择UIActivityTypeMessage时,它只会显示一条消息,但是如果用户选择UIActivityTypeFacebook,它将显示一条带有图像的消息。
这是我的代码,我只能用UIActivityTypeMessage返回一条消息,但是对于UIActivityTypeFacebook,我不知道如何返回带有图像的消息。
- (id)item
{
if ([self.placeholderItem isKindOfClass:[NSString class]]) {
if ([self.activityType isEqualToString:UIActivityTypeMessage]) {
return [NSString stringWithFormat:@"%@\n%@",self.text,self.url];
} else {
NSDictionary *d = [[NSDictionary alloc] initWithObjects:@[self.text,self.image] forKeys:@[@"text",@"image"]];
return d;
}
}
return self.placeholderItem;
}UIActivityItemProvider是否有特定的键和值可用于设置消息、url和图像?
作为一个更新,我在UIActivity类引用中看到,有一个特定活动类型的常量。不过不知道怎么用。有人能指点我吗?
*UIActivityTypePostToFacebook对象将提供的内容张贴到Facebook上的用户墙上。 在使用此服务时,可以提供NSString、NSAttributedString、UIImage、ALAsset和NSURL对象作为活动项的数据。您还可以指定其内容使用资产库方案的NSURL对象。
发布于 2014-12-09 04:04:37
您需要创建3个单独的活动提供程序,每个数据类型一个,并将它们全部传递到initWithActivityItems:applicationActivities:函数中的UIActivityViewController中。这些活动利用了您提供的所有提供者,而UIActivityViewController隐藏了任何不支持它们的提供者(例如,在某些情况下,这会使只包含映像变得困难)。
https://stackoverflow.com/questions/26856571
复制相似问题