2015-01-15 5 views
2

Мне нужно сделать снимок экрана части экрана.Снимок экрана с части экрана в swift

Это код, чтобы сделать скриншот полного экрана:

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

Но как же я взять скриншот только части экрана?

Спасибо

+0

если часть экрана является UIView, проверьте эту ссылку http://stackoverflow.com/questions/30696307/how-to-convert-a-uiview-to-a-image –

ответ

0

Вы сделать это с помощью .snapshotViewAfterScreenUpdates (BOOL). Например:

exampleImageView.snapshotViewAfterScreenUpdates(false) 
+0

, что делает эта строка кода точно? – sdd

+0

Возвращает новый объект вида, содержащий моментальный снимок отображаемого содержимого экрана. Для получения дополнительной информации смотрите Apple Docs: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html – Valentin

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 

Вы можете изменить код, чтобы принять screenshoot для нужного вида.

0

Это лучший способ скриншотов на экране. попробуйте использовать для щебета и 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) 
} 
Смежные вопросы