2015-01-15 3 views
2

화면의 일부 스크린 샷을 찍어야합니다.신속한 화면 일부에서 스크린 샷 찍기

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 : 새로 그려지는 이미지

var newImage = UIGraphicsGetImageFromCurrentImageContext() 
self.someImageView.image = newImage 

당신이 원하는보기를 screenshoot을하는 코드를 수정할 수를 사용하여 상황에 맞는

self.messageTextView.drawViewHierarchyInRect(CGRect(x: 0, y: 0, width: self.messageTextView.bounds.width, height: self.messageTextView.bounds.height), afterScreenUpdates: false) 

3 이미지를 그립니다.

0

화면의 일부를 캡쳐하는 가장 좋은 방법입니다. 트위터와 페이스 북의 스크린 샷 공유 기능을 사용해보십시오.

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) 
}