在活动视图控制器中共享屏幕截图 - Swift

tdh*_*tdh 7 share screenshot uiactivityviewcontroller swift

我正在开发应用程序的一部分,以便当您点按分享按钮时,它可以让您立即分享您的高分榜的屏幕截图以及消息.我无法制作/分享屏幕截图,当我点击分享按钮时,应用程序只允许我复制我的默认文本或"邮件"我的默认文本,不允许我发布到Facebook,Twitter,消息, 和更多.

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)

}
Run Code Online (Sandbox Code Playgroud)

解决这个问题的最佳方式是什么?谢谢!

Poi*_*pps 10

这就是我在我的应用程序中处理共享的方式.

    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)
}
Run Code Online (Sandbox Code Playgroud)

我使用.excludedActvityTypes排除了许多共享选项.

然后每当你点击分享按钮时,都会调用它

socialShare(sharingText: "Just hit \(highscore)! Beat it! #SwypI", sharingImage: UIImage(named: "The screenshot you are saving"), sharingURL: NSURL(string: "http://itunes.apple.com/app/"))
Run Code Online (Sandbox Code Playgroud)

您没有将Twitter和Facebook视为共享选项的原因是因为您需要在iPhone上的设置中登录它们.不是个别应用程序.

希望这可以帮助.