我需要截取屏幕的一部分。
这是截取全屏屏幕截图的代码:
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
let imageRef = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
但是如何从屏幕的一部分截取屏幕截图呢?
谢谢
1:你需要定义一个上下文。例如:
UIGraphicsBeginImageContextWithOptions(self.messageTextView.bounds, true, 2.0 )
2:在上下文中绘制图像
self.messageTextView.drawViewHierarchyInRect(CGRect(x: 0, y: 0, width: self.messageTextView.bounds.width, height: self.messageTextView.bounds.height), afterScreenUpdates: false)
3:使用新绘制的图像
var newImage = UIGraphicsGetImageFromCurrentImageContext()
self.someImageView.image = newImage
您可以修改代码以截取所需视图的屏幕截图。
您可以使用.snapshotViewAfterScreenUpdates(BOOL)执行此操作。喜欢这个:
exampleImageView.snapshotViewAfterScreenUpdates(false)
这是截
取屏幕部分的最佳方法。 尝试使用Twitter和Facebook屏幕截图共享功能。
func shareButtonClickedToTwitter() {
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,150), false, 0)
var image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
self.view?.drawViewHierarchyInRect(CGRectMake(-50, -50, self.frame.size.width, self.frame.size.height), afterScreenUpdates: true)
var screenShot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.vc.showTWShare("I scored (score) in Beanystalk can you do better? Available in App Store..", shareImage: screenShot)
}