我需要截取部分屏幕截图。
这是拍摄全屏截图的代码:
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
let imageRef = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
但是如何从屏幕的一部分截取屏幕截图?
谢谢
答案 0 :(得分:1)
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
您可以修改代码以对所需视图进行屏幕截图。
答案 1 :(得分:0)
使用.snapshotViewAfterScreenUpdates(BOOL)执行此操作。像这样:
exampleImageView.snapshotViewAfterScreenUpdates(false)
答案 2 :(得分:0)
这是截图部分屏幕的最佳方式。尝试使用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)
}