在我的应用中,当用户点击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
不过,先谢谢!这将是一个很大的帮助!
答案 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
}