저는 앱을 개발 중이며 스레드에서 스크린 샷을 가져와야합니다. 나는 다음과 같은 코드를 사용하여이 작업을 수행 할 수없는 해요 : 사람이 중복으로이 질문을 표시하려고하면NSThread를 사용하여 UIView의 스크린 샷을 찍는 방법?
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, [[UIScreen mainScreen] scale]);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
을, 나는이에 대해 물어 오전이의 관심을 바랍니다 답하고 데리고 나에게 적절한 링크를 제공하십시오 스레드에서 이미지를 생성합니다.
감사합니다.
네, 지금 당면하고있는 모든 시나리오가 있지만 UIView의 UIImage를 만들 수있는 방법이 없습니까? 이제 NSThread 및 NsOperation을 시도하고 - (void) performSelectorInBackground : (SEL) aSelector withObject : (id) arg 메서드를 사용합니다. 하지만 그들 모두에 대한 웹 잠금 오류가 발생하고 내 응용 프로그램이 추락합니다. –
@ Jack_iPhone 아니요, 코드를 다른 스레드로 오프로드하는 방법과 상관없이 가능하지 않습니다. 스크린 샷을 취하는 비트는 주 스레드에서 수행되어야합니다. – JustSid
Apple 설명서에 따르면 모든 UIKit 메서드는 주 스레드에서 호출되어야합니다. 'UIGraphicsGetImageFromCurrentImageContext' (그리고 여러분이 호출하는 다른 모든 메소드)는'UI'로 시작하므로 UIKit 메소드입니다! – lnafziger