我正在尝试使用以下代码拍摄UITextView
的快照
extension UIView {
func pb_takeSnapshot() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
drawHierarchy(in: self.frame, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}
但是我给了我一半的快照。当我使用UITextView
进行检查时,即使Snapshot
和width
图像也具有相同的height
和print
。我也尝试了不同的代码,但是没有用。谁能告诉我如何解决这个问题,我想要UITextView
的完整快照。
答案 0 :(得分:1)
您不应该使用frame
来绘制图形(由于某些原因,正如您在评论中所说),您的bounds
没有给出正确的值。
如果不查看视图层次结构就很难调试原因,但是您仍然应该能够创建正确的快照。
创建矩形以替代从头开始绘制
let rect = CGRect(x: 0.0, y: 0.0, width: bounds.size.width, height: bounds.size.height)
drawHierarchy(in: rect, afterScreenUpdates: true)