iOS는 프로그래밍 방식으로 iOS 기기에서 스크린샷을 찍는 공식적인 방법을 제공하지 않지만 홈 버튼과 전원 버튼을 동시에 눌러 스크린샷을 찍는 방법을 제공합니다.
스크린샷을 찍으려면 일련의 단계를 거쳐야 합니다.
-
우리는 keyWindow의 레이어를 얻을 것입니다 – UIApplication.shared.keyWindow!.layer
-
우리는 화면의 크기를 얻을 것입니다 – UIApplication.main.scale
-
보기와 같은 크기로 새 이미지를 만듭니다.
-
이미지를 렌더링하고 저장합니다.
새 프로젝트를 만들어 주 보기 컨트롤러에서 배경색을 지정한 다음 버튼을 드래그하고 연결하여 해당 클래스에 대한 작업을 생성해 보겠습니다. 작업에 다음 코드를 추가합니다.
@IBAction func takeshot(_ sender:Any) { var image :UIImage? let currentLayer =UIApplication.shared.keyWindow!.layer let currentScale =UIScreen.main.scale UIGraphicsBeginImageContextWithOptions(currentLayer.frame.size, false, currentScale); 가드 let currentContext =UIGraphicsGetCurrentContext() else {return} currentLayer.render(in:currentContext) image =UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() 가드 let img =이미지 else { return } UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil, nil)}>이것을 처음 사용하는 동안 이미지를 저장하려면 사진 권한을 허용해야 합니다. 저장된 이미지는 .jpg 형식입니다.
또한 "NSPhotoLibraryAddUsageDescription"을 추가합니다. 앱의 info.plist로 이동합니다.
이를 함수로 변환하여 여러 곳에서 사용하거나 확장자로 사용할 수 있습니다.
앱은 이렇게 생겼습니다. 실행할 때.
처음 실행하고 촬영 버튼을 클릭한 후
액세스를 허용한 후 iPhone에서 사진 앱으로 이동하면 사진이 거기에서 찾을 수 있습니다.