【问题标题】:How To Share On Facebook And Twitter (Social Framework) by taking screenshot?如何通过截图在 Facebook 和 Twitter(社交框架)上分享?
【发布时间】:2015-08-31 18:37:05
【问题描述】:

在我的应用程序中,当用户单击shareToFacebook 按钮时,我需要我的应用程序从刚刚获得分数的另一个 ViewController 截取屏幕截图,并将其分享到 Facebook。所以我写了这样的代码:(效果很好),:

@IBAction func sharetoFacebook() {
var sharetoFacebook : SLComposeViewController = 
SLComposeViewController(forServiceType:
SLServiceTypeFacebook)
sharetoFacebook.setInitialText("WOW! I scored \(rightCounter) right..! Wanna challenge me?")
shareToFacebook.addImage(UIImage(named: "//What should I put here ?"))
self.presentViewController(sharetoFacebook, animated:
    true, completion: nil)  }

现在,我的疑问是:为了从另一个获得分数的 ViewController 中截取屏幕截图,我应该在其中输入什么代码:

shareToFacebook.addImage(UIImage(named: "//What should I put here ?"))

顺便说一句,提前谢谢!这将是一个很大的帮助!

【问题讨论】:

  • 我不会把它作为答案,因为我不在我的机器上并且无法测试它,但我认为你想要做的就是使用 imageWithData 而不是默认创建者你在调用。从其他 VC 获取数据并将其放入此处。如果您在 .Net 下熟悉它们,这有点像使用 Stream。

标签: ios objective-c xcode swift uiviewcontroller


【解决方案1】:

UIView 创建一个扩展并拥有一个快照方法。这将为任何视图(包括子视图)返回 UIImage

extension UIView {

    func snapshot() -> UIImage {
        UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.mainScreen().scale)

        drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true)

        let sreenshotImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return screenshotImage
    }
}

如果你把这个方法放在VC上

func snapshot() -> UIImage {
            UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, false, UIScreen.mainScreen().scale)

            drawViewHierarchyInRect(self.view.bounds, afterScreenUpdates: true)

        let sreenshotImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return screenshotImage
    }

【讨论】:

  • 那么,我应该把这段代码放到哪里呢?是带分数的 ViewController 吗?
  • 如果你把它放在视图控制器中,那么将 bounds.size 替换为 self.view.bounds.size,并将 self.bounds 替换为 self.view.bounds
  • 而且,所以在 IBAction 里面我应该放 shareToFacebook.addImage(UIImage(named: "\(screenshotImage)")) 吗?那行得通吗?而且,就像……当单击共享按钮时……facebook 发布选项应该会显示我之前提到的 ViewController 的屏幕截图。并且根本不应该显示带有分数的 ViewController ..!
  • 没有我提到的函数返回一个 UIImage 所以你应该做类似 shareToFacebook.addImage(scoreVC.snaphot())
  • 啊..!所以这行得通吗?谢谢,我会试试看..很快就会告诉你..!
猜你喜欢
  • 2012-03-20
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多