如何在iOS上以程式設計方式截圖?
在這篇文章中,我們將學習如何在iOS中以程式設計方式截圖。
我們將新增一個文字欄位,在其中更改值,透過按下一個按鈕進行截圖,然後將截圖顯示在我們將在按鈕正下方放置的ImageView中。
請記住,您可以將此功能新增到長按或任何其他手勢上,甚至可以儲存影像。但現在我們將只關注捕獲螢幕截圖並在影像檢視中顯示它。
讓我們開始吧
步驟 1 − 開啟 Xcode → 新建專案 → 單檢視應用程式 → 我們將其命名為“TakeScreenShot”
步驟 2 − 開啟 Main.storyboard,新增一個 UITextField、一個按鈕和一個 UIImageView,如下所示
步驟 3 − 為影像檢視附加一個 @IBOutlet。將其命名為 snapShotImageView。這是我們將顯示捕獲的螢幕截圖的影像檢視。
步驟 4 − 為“Take Snap Shot”按鈕的 touchUpInside 新增一個 @IBAction。將函式命名為 takeSnapShotClicked。
步驟 5 − 在 ViewController 類的 viewDidLoad 中,設定影像檢視的邊框顏色和寬度,以將其與檢視的其他部分割槽分開來。
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 − 構建並執行專案。單擊截圖按鈕。您應該在底部的影像檢視中看到螢幕截圖。
廣告