Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS에서 프로그래밍 방식으로 스크린샷을 찍는 방법은 무엇입니까?

<시간/>

이 게시물에서는 iOS에서 프로그래밍 방식으로 스크린샷을 찍는 방법을 배웁니다.

값을 변경할 textField에 추가하고 버튼을 눌러 스크린샷을 찍은 다음 버튼 바로 아래에 배치할 imageView에 스크린샷을 표시합니다.

길게 누르거나 다른 제스처에 이 기능을 추가할 수 있으며 원하는 경우 이미지를 저장할 수도 있습니다. 하지만 지금은 스크린샷을 캡처하여 이미지 보기에 표시하는 데만 집중할 것입니다.

시작하겠습니다

1단계 − Xcode 열기 → 새 프로젝트 → 단일 보기 애플리케이션 → 이름을 "TakeScreenShot"으로 지정합니다.

2단계 − Main.storyboard를 열고 아래와 같이 UITextField 1개, 버튼 1개, UIImageView 1개를 추가합니다.

iOS에서 프로그래밍 방식으로 스크린샷을 찍는 방법은 무엇입니까?

3단계 − 이미지 보기용 @IBOutlet 1개를 첨부합니다. 이름을 snapShotImageView로 지정합니다. 캡처한 스크린샷을 뿌릴 이미지 보기입니다.

4단계 − '스냅샷 찍기' 버튼의 touchUpInside에 하나의 @IBAction을 추가합니다. 함수 이름을 takeSnapShotClicked로 지정합니다.

5단계 − ViewController 클래스의 viewDidLoad에서 imageView의 테두리 색상과 너비를 설정하여 view의 다른 부분과 구별되도록 합니다.

self.snapShotImageView.layer.borderColor = UIColor.red.cgColor
self.snapShotImageView.layer.borderWidth = 2.0

6단계 − 다음 방법을 사용하여 스크린샷을 캡처합니다.

  • 그래픽 컨텍스트를 시작합니다.
  • 변수의 현재 컨텍스트를 캡처합니다.
  • 컨텍스트 변수에서 현재 보기 레이어를 렌더링합니다.
  • 컨텍스트 변수에서 이미지를 가져옵니다. 이 시점의 컨텍스트에는 현재 보기에서 사용할 수 있는 모든 항목의 스크린샷이 포함됩니다.
  • 캡처된 이미지를 컨텍스트에서 imageView로 설정합니다.
  • 그래픽 컨텍스트 종료

위의 모든 작업은 takeSnapShotClicked 메서드에서 수행됩니다. 이제 다음과 같이 보일 것입니다.

@IBAction func takeSnapShotClicked(_ sender: Any) {
   UIGraphicsBeginImageContextWithOptions(self.view.layer.frame.size, false, UIScreen.main.scale);
   guard let context = UIGraphicsGetCurrentContext() else {return }
   self.view.layer.render(in:context)
   self.snapShotImageView.image = UIGraphicsGetImageFromCurrentImageContext()
   UIGraphicsEndImageContext()
}

7단계 − 프로젝트를 빌드하고 실행합니다. 스냅샷 찍기 버튼을 클릭합니다. 하단 이미지 보기에 스냅샷이 표시되어야 합니다.

iOS에서 프로그래밍 방식으로 스크린샷을 찍는 방법은 무엇입니까?