如何在 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 上的照片應用程式,您將在那裡找到圖片。
廣告