我试图截取(按下按钮后)只有viewController大小的一半(位于中间)。
我知道我可以截取整个视图的截图:
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, true, 0.0)
self.view.drawHierarchy(in: self.view.frame, afterScreenUpdates: false)
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
我查看了stackoverflow,但它仍然无效。
例如,这不适用于这些错误消息:
UIGraphicsBeginImageContextWithOptions(CGSize(100, 100), false, 0);
错误:参数标签'(_:,_ :)'与任何可用的重载都不匹配
self.view.drawViewHierarchyInRect(CGRect(-50,-5-,view.bounds.size.width,view.bounds.size.height), afterScreenUpdates: true)
错误:参数标签'(_:,_:,_:,_ :)'与任何可用的重载都不匹配
var image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
如何创建一半viewController的截图?
答案 0 :(得分:0)
试试This.For Swift
extension UIView {
func screenshot() -> UIImage {
return UIGraphicsImageRenderer(size: bounds.size).image { _ in
drawHierarchy(in: CGRect(origin: .zero, size: CGSize(width: bounds.size.width/2.0, height: bounds.size.height/2.0)), afterScreenUpdates: true)
}
}
}
使用。强>
let image = view.screenshot()