iOS 기기에서 현재 표시된 화면을 특정 앱에 저장하려고하는데 제대로 작동합니다. UIImageView를 가로 방향으로 저장하려고하면 바로 문제가 발생합니다. 나는이 응용 프로그램에 대한 자동 레이아웃을 사용하고iOS : renderInContext 및 가로 방향 문제
, 그리고 아이폰과 아이 패드 모두에서 실행
내 문제를 설명하는 다음 그림을 참조하십시오. ImageView가 세로 모드로 표시된 것처럼 항상 저장되어있는 것처럼 보입니다. 지금 당장 조금 갇혀 있습니다.
CGSize frameSize = self.view.frame.size;
if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
frameSize = CGSizeMake(self.view.frame.size.height, self.view.frame.size.width);
}
UIGraphicsBeginImageContextWithOptions(frameSize, NO, 0.0);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGFloat scale = CGRectGetWidth(self.view.frame)/CGRectGetWidth(self.view.bounds);
CGContextScaleCTM(ctx, scale, scale);
[self.view.layer renderInContext:ctx];
[self.delegate photoSaved:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext();
당신의 도움을 기대 :
이
내가 사용하는 코드입니다!
결과가 정확히 무엇이며 예상되는 결과는 무엇입니까? 풍경의 너비와 높이를 바꿔서 회전을해야 할 수도 있지만 스크린 샷을 세로로 만듭니다. –
@MaticOblak 문제는 현재 인터페이스 방향에 관계없이 세로 모드의 컨텍스트에서 이미지를 저장하는 것처럼 보입니다. 위 사진을 보면 세로 모드로 컨텍스트를 저장할 때 모든 것이 정상입니다. 그러나 가로 모드에서 컨텍스트를 저장할 때 이미지는 물론 가로 모드로 표시되지만 컨텍스트의 크기에 관계없이 세로 모드로 표시 될 때 이미지가 항상 저장됩니다. 회전은이 시점에서 아무 것도 바뀌지 않습니다. – chritaso