내 상황은 다음과 같습니다. 사용자가 볼 수있는 현재보기의 인쇄 화면을 프로그래밍 방식으로 받아서 사진 앨범에 저장하려고합니다. 문제는 계층의 모든 뷰를 표시하지 않기를 바라는 것입니다. 내 계획은 다음과 같습니다 :사용자를 방해하지 않고 그래픽 컨텍스트의 일부분을 저장하는 방법은 무엇입니까?
- 뷰 계층의 복사본을 만듭니다.
- 흥미롭지 않은 하위보기를 숨 깁니다.
- 인쇄 화면을 만드십시오.
- 사진 앨범에 저장하십시오.
문제는 내가 첫 번째 지점에 머물렀다는 것입니다. UIView
은 NSCopying
프로토콜을 구현하지 않기 때문에 뷰 계층 구조의 전체 복사본을 만들 수 없습니다. 보기를 보관하고 저장하지 않으려했지만이 기능은 데스크톱에서만 사용할 수있었습니다.
여기에는 두 가지 옵션이 있습니다.
a) 모든 뷰와 하위 뷰에서 NSCopying 프로토콜을 구현합니다. b) 전체 화면을 덮는 흰색보기를 지 웁니다 (인쇄 화면을 수동으로 찍을 때와 같은 일종의 플래시 효과). 그리고 그 순간에 원하는보기를 숨 깁니다.
내가 놓친이 문제에 접근하는 다른 방법이 있습니까?
편집 :
UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);
[[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
안부 // Abeansits