使用 Swift 開發相機功能的終極指南 📷

隨著智慧型手機的普及,拍照已經成為我們日常生活中不可或缺的一部分。在 Swift 中,我們可以使用 `UIImagePickerController` 來讓使用者輕鬆地使用相機拍照或是從相簿中選取照片。以下是 2025 年最新的語法與最佳實踐,幫助您快速上手。

步驟 1:設定 Info.plist

在開始之前,我們需要在 `Info.plist` 中加入相機的使用描述,這樣才能獲得使用者的授權。請加入以下設定:

<key>NSCameraUsageDescription</key>
<string>我們需要使用您的相機來拍照</string>

步驟 2:建立 UIImagePickerController

接著,我們可以使用以下程式碼來建立一個 `UIImagePickerController`,並設置它的來源類型為相機:

let imagePickerController = UIImagePickerController()
imagePickerController.sourceType = .camera
imagePickerController.delegate = self
present(imagePickerController, animated: true, completion: nil)

這段程式碼將會顯示相機介面,讓使用者可以拍攝照片。

步驟 3:實作 UIImagePickerControllerDelegate

在使用者拍攝完成後,我們需要實作 `UIImagePickerControllerDelegate` 中的 `didFinishPickingMediaWithInfo` 方法,以便取得拍攝的照片:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    if let image = info[.originalImage] as? UIImage {
        // 取得照片並儲存
        saveImage(image) // 假設我們有一個 saveImage 函數來儲存照片
    }
    dismiss(animated: true, completion: nil)
}

步驟 4:處理取消操作

如果使用者取消了拍攝,我們需要實作 `didCancel` 方法:

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    dismiss(animated: true, completion: nil)
}

這樣就可以在使用者取消拍照時關閉 `UIImagePickerController`。

錯誤排除

– **相機無法啟動**:確保已在 `Info.plist` 中正確設置相機使用描述,並檢查設備是否有相機。
– **照片未能儲存**:確保有實作照片儲存的邏輯,並檢查儲存路徑是否合法。

延伸應用

– 使用 `AVFoundation` 框架以獲得更高的控制權,如錄製影片或調整相機設置。
– 實作相片編輯功能,讓使用者在拍照後可以對照片進行簡單編輯。

Swift 相機使用 📷

Q&A(常見問題解答)

1. Swift 中如何檢查相機權限?

可以使用 `AVCaptureDevice.authorizationStatus(for: .video)` 方法來檢查相機權限,並依據狀態請求授權。

2. UIImagePickerController 支援哪些圖片格式?

`UIImagePickerController` 支援 JPEG 和 PNG 格式的圖片,以及 MOV 格式的影片。

3. 如何在 Swift 中實作相機閃光燈?

可以使用 `AVCaptureDevice` 來控制相機的閃光燈狀態,這需要更深入的 AVFoundation 知識。

這樣的優化不僅提升了內容的實用性,還符合 SEO 的最佳實踐,使文章更具吸引力。

Categorized in:

Tagged in:

,