操作系统似乎选择是否使用PNG或JPEG,原因不明.在我的情况下,我想发送JPEG(通过邮件,推特等),但我倾向于得到一个非常大的PNG.
如果我将UIActivityItemProvider子类化并返回指向我自己创建的文件的NSURL,则使用UIImageJPEGRepresentation将JPEG写入磁盘,我当然可以获得JPEG.但是,使用NSURL会导致其他问题(其中一个问题是无法将iMessage用作目标).有没有办法使用UIImage,但是指定你更喜欢某种文件格式?(我很确定答案是否定的,但要检查.)
objective-c uiimage ios6 uiactivity uiactivityviewcontroller
我试图移动我的应用程序使用UIActivityViewController,而不是UIActionSheet,以便我得到花哨的图形共享按钮而不是文本按钮.(我的应用仅针对iOS 6.)
在尝试使用它几个晚上之后,似乎要么我完全误解了如何使用它,要么Apple当前的实现很糟糕:
您不能为不同的服务指定不同的消息.如果我想要一些可以解决的问题:邮件,Facebook,消息和Twitter,它最多需要140个字符才能在Twitter上运行.有没有办法为每种类型的活动设置自定义内容?
似乎无法为邮件设置主题行或收件人.我已经阅读了文档,他们认为这可能是使用mailto:protocol的NSURL可能实现的,但在我的测试中,这些URL只是被推到了邮件正文中.实际上是否有办法设置主题行和可选的收件人?
如果我想解决这些缺点,并通过子类化UIActivity来进行我自己的自定义活动,我必须使用自定义图像/图标.因此,我不能用Apple的官方图标模仿Mail活动,例如实现我自己的自定义活动后端,实际上让我设置主题行,收件人,自定义正文等.我错了,有没有办法使用Apple的服务图标,但有机会自定义行为?(我看到的唯一回调就是在活动完成后运行的回调,对吗?)
我希望我错了!
我刚刚为共享助手制作了一个包装类,我的代码如下。
let activityVC = UIActivityViewController(activityItems: [message], applicationActivities: nil)
activityVC.setValue(subject, forKey: "subject")
activityVC.completionWithItemsHandler = {(activityType: String!, completed:Bool, objects:[AnyObject]!, error:NSError!) in
}
fromVC.presentViewController(activityVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
问题从这里开始,未调用 UIActivityItemSource 方法
override func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType
{
case UIActivityTypeMail:
return msg
case UIActivityTypeMessage:
return msg
case UIActivityTypePostToFacebook:
return msg
case UIActivityTypePostToTwitter:
return strTwitterShare
default:
return msg
}
}
Run Code Online (Sandbox Code Playgroud)
感谢帮助
我使用UIActivityViewController 到共享文本到Outlook,一切正常,除了两件事情,一个我不能设置一个主题线和两条我不能设置一个标题的,我分享,我的文字是HTML表,它是当前显示我的实现中的第一部分(见截图)虽然我想显示一个预览标题。
有没有办法设置标题和设置主题?
这是我的代码:
let activityViewController = UIActivityViewController(activityItems : [htmlString], applicationActivities: nil)
activityViewController.popoverPresentationController?.barButtonItem = self.shareButton
self.present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
我试图这样设置主题:
activityViewController.setValue("This is my subject", forKey: "subject")
Run Code Online (Sandbox Code Playgroud)
但它没有用
我究竟做错了什么?
这是我正在谈论的标题的屏幕截图:
但它没有用
我正在使用我正在使用的应用程序UIActivityViewController.
这是我正在使用的代码.
NSString *postText = @"My Text";
NSArray *activityItems = @[postText];
UIActivityViewController *activityController =
[[UIActivityViewController alloc]
initWithActivityItems:activityItems applicationActivities:nil];
activityController.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, nil];
[self presentViewController:activityController
animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
这很好用.当我打开Twitter或电子邮件时UIActivityViewController,它显示我想要分享的文本,这很好.
但是,现在我只想在帖子成功或电子邮件发送成功后才在我的数据库中执行某些操作.
我怎样才能做到这一点?
我正在尝试使用默认的苹果共享屏幕来分享视频,如Twitter和Facebook.我有这个使用图像,但我不知道如何改变它与视频一起工作.提前致谢!
这是我用来分享照片的代码:
(IBAction)shareButtonPressed:(id)sender {
UIImage *imagetoshare = [UIImage imageNamed:@"First_Time_Travel"];
NSArray *activityItems = @[imagetoshare];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint];
[self presentViewController:activityVC animated:TRUE completion:nil];
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试考虑一种方法来使用UIActivityViewController(或使用SMS)从一个设备与另一个设备共享联系.
到目前为止,我一直在寻找,我不知道如何使用我的应用程序在设备之间共享联系人.
有任何想法吗?
How would I share a Gif in Swift? The method I am using right now to share the Gif URL only shares one image and does not share the animated Gif image. Here is what I have right now:
var cell = self.collectionView.cellForItemAtIndexPath(index)
println(index.item)
var URLString: String = contentArray[index.item].contentUrlStirng
var shareURL: NSURL = NSURL(string: "\(URLString)")!
var shareImage: UIImage = UIImage.animatedImageWithAnimatedGIFURL(shareURL)
let firstActivityItem: Array = [shareImage]
let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: firstActivityItem, applicationActivities: nil)
self.presentViewController(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
The URLString contains …
在iOS版Google相册中共享照片时,Google会在UIActivityViewController顶部显示其自定义视图。我知道可以通过在顶级UIWindow上绘制自己的视图来半完成此操作,但是Google也会以某种方式隐藏底部的“取消”按钮并填补空白,以使UIActivityViewController更加“全屏”。他们是否以某种方式将UIActivityViewController的视图嵌入自己的视图中?
Google相册共享表: