如何通过截图分享Facebook和Twitter(社交框架)?

时间:2015-08-31 18:37:06

标签: ios objective-c xcode swift uiviewcontroller

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

def resizeEvent(self, resizeEvent):
    if self.viewport().height() < self.widget().height():
        self.setFixedWidth(Pane.MinWidth + 18) 
        scrollbar = self.verticalScrollbar()
        scrollbar.setVisible(True)
        self.setVerticalScrollBar(scrollbar) ## APP CRASH
    else:
        self.setFixedWidth(Pane.MinWidth)
        #self.verticalScrollBar().hide()

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

shareToFacebook
不过,先谢谢!这将是一个很大的帮助!

1 个答案:

答案 0 :(得分:0)

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
    }