在swift中从屏幕的一部分截取屏幕截图

时间:2015-01-15 14:06:42

标签: swift screenshot

我需要截取部分屏幕截图。

这是拍摄全屏截图的代码:

    UIGraphicsBeginImageContext(view.frame.size)
    view.layer.renderInContext(UIGraphicsGetCurrentContext())
    let imageRef = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

但是如何从屏幕的一部分截取屏幕截图?

谢谢

3 个答案:

答案 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)  
}
相关问题