在活动视图控制器-Swift中共享屏幕截图
我正在开发一个应用程序的一部分,这样当你点击分享按钮时,它可以让你即时分享你的高分截图和一条消息。我无法制作/共享屏幕截图,当我点击共享按钮时,该应用程序只允许我复制默认文本或“邮寄”默认文本,不允许我发布到Facebook、Twitter、消息等在活动视图控制器-Swift中共享屏幕截图,swift,share,screenshot,uiactivityviewcontroller,Swift,Share,Screenshot,Uiactivityviewcontroller,我正在开发一个应用程序的一部分,这样当你点击分享按钮时,它可以让你即时分享你的高分截图和一条消息。我无法制作/共享屏幕截图,当我点击共享按钮时,该应用程序只允许我复制默认文本或“邮寄”默认文本,不允许我发布到Facebook、Twitter、消息等 func shareButtonPress() { var postPhrase = "Just hit \(highscore)! Beat it! #SwypIt" //Generate the screenshot
func shareButtonPress() {
var postPhrase = "Just hit \(highscore)! Beat it! #SwypIt"
//Generate the screenshot
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
var image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
var postImage = UIImage(named: "\(image)")
var activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [postPhrase, postImage!], applicationActivities: nil)
self.presentViewController(activityViewController, animated: true, completion: nil)
}
最好的方法是什么?谢谢 使用SLComposeViewController
import Social
func shareButtonPress() {
var postPhrase = "New high score \(highscore)!"
//Generate the screenshot
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
var image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
var postImage = UIImage(named: "\(image)")
let shareToFacebook = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
shareToFacebook.setInitialText(postPhrase)
shareToFacebook.addImage(postImage)
presentViewController(shareToFacebook, animated: true, completion: nil)
}
这就是我在应用程序中处理共享的方式
func socialShare(#sharingText: String?, sharingImage: UIImage?, sharingURL: NSURL?) {
var sharingItems = [AnyObject]()
if let text = sharingText {
sharingItems.append(text)
}
if let image = sharingImage {
sharingItems.append(image)
}
if let url = sharingURL {
sharingItems.append(url)
}
let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypeCopyToPasteboard,UIActivityTypeAirDrop,UIActivityTypeAddToReadingList,UIActivityTypeAssignToContact,UIActivityTypePostToTencentWeibo,UIActivityTypePostToVimeo,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,UIActivityTypePostToWeibo]
self.presentViewController(activityViewController, animated: true, completion: nil)
}
我使用.excludedatvitypes排除了许多共享选项
然后,每当你按下共享按钮,让它调用这个
socialShare(sharingText: "Just hit \(highscore)! Beat it! #SwypI", sharingImage: UIImage(named: "The screenshot you are saving"), sharingURL: NSURL(string: "http://itunes.apple.com/app/"))
您之所以不将Twitter和Facebook视为共享选项,是因为您需要在IPhone的设置中登录它们。而不是单个应用程序
希望这有帮助。非常感谢!正是我需要的!请将我的答案标记为正确,这样它就被回答了,然后请进行投票。我将如何将屏幕截图实现为图像?我使用了你的方法,它一直有效,直到我尝试实现屏幕截图代码。屏幕截图将显示为空白,而消息仍然不是一个选项。谢谢我很感激你的回答,但恐怕我没有足够的声誉去评价它。我会给它打上正确的标记,并且我会确保建立声誉来提高投票率。谢谢。我来看看截图。你也在使用模拟器来测试你的应用程序吗?我正在使用模拟器来测试应用程序,尽管屏幕截图是空白的。谢谢你这么快回答<代码>ViewController.swift:207:36:可选类型“CGContext”的值未展开;你想用“!”吗或“?”?但在行
view.layer.renderContext(UIGraphicsGetCurrentContext())处生成错误