2010-07-02 3 views
1

내 상황은 다음과 같습니다. 사용자가 볼 수있는 현재보기의 인쇄 화면을 프로그래밍 방식으로 받아서 사진 앨범에 저장하려고합니다. 문제는 계층의 모든 뷰를 표시하지 않기를 바라는 것입니다. 내 계획은 다음과 같습니다 :사용자를 방해하지 않고 그래픽 컨텍스트의 일부분을 저장하는 방법은 무엇입니까?

  1. 뷰 계층의 복사본을 만듭니다.
  2. 흥미롭지 않은 하위보기를 숨 깁니다.
  3. 인쇄 화면을 만드십시오.
  4. 사진 앨범에 저장하십시오.

문제는 내가 첫 번째 지점에 머물렀다는 것입니다. UIViewNSCopying 프로토콜을 구현하지 않기 때문에 뷰 계층 구조의 전체 복사본을 만들 수 없습니다. 보기를 보관하고 저장하지 않으려했지만이 기능은 데스크톱에서만 사용할 수있었습니다.

여기에는 두 가지 옵션이 있습니다.
a) 모든 뷰와 하위 뷰에서 NSCopying 프로토콜을 구현합니다. b) 전체 화면을 덮는 흰색보기를 지 웁니다 (인쇄 화면을 수동으로 찍을 때와 같은 일종의 플래시 효과). 그리고 그 순간에 원하는보기를 숨 깁니다.

내가 놓친이 문제에 접근하는 다른 방법이 있습니까?

편집 :

UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size); 
    [[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 

안부 // Abeansits

답변

0

그래서, 불행하게도 아무도이 문제에 어떤 도움을 제공 할 수 없었다. 문제를 해결하는 방법 :

인쇄 화면에서 내가 원하지 않는 요소를 제거했습니다. 애니메이션을 사용하여이 작업을 수행 했으므로 그래픽이 깜박 거리지 않습니다. 결국 그것은 아주 좋게 보였고 나쁘게는 원래의 문제를 해결하지 못했습니다.

수정 사항을 발견하는 경우 게시하십시오. 감사합니다.

// Abeansits

관련 문제