如何在 iPhone/iOS 中以程式設計方式截圖?


雖然 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);
   guard let currentContext = UIGraphicsGetCurrentContext() else {return}
   currentLayer.render(in: currentContext)
   image = UIGraphicsGetImageFromCurrentImageContext()
   UIGraphicsEndImageContext()
   guard let img = image else { return }
   UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil)
}

第一次使用時,您需要允許照片許可權才能儲存影像。儲存的影像將為 .jpg 格式。

還要在應用程式的 info.plist 中新增一個 **“NSPhotoLibraryAddUsageDescription”**。

這可以轉換為一個函式,並在多個地方或作為擴充套件使用。

這就是應用程式執行時的外觀。

第一次執行並點選“截圖”按鈕後

允許訪問後,轉到 iPhone 上的照片應用程式,您將在那裡找到圖片。

更新於: 2020年6月27日

1K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告