iOS App **無法直接存取系統相簿以外的自定義資料夾**,因為沙盒機制限制 App 僅能讀寫自身容器內的檔案(`Documents`、`Library`、`tmp` 等目錄)。
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let dir = urls[0].appendingPathComponent("MyCustomAlbum")
try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true)
var config = PHPickerConfiguration()
config.filter = .images
config.selectionLimit = 1
let picker = PHPickerViewController(configuration: config)
picker.delegate = self
present(picker, animated: true)
// PHPickerViewControllerDelegate
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true)
guard let provider = results.first?.itemProvider,
provider.canLoadObject(ofClass: UIImage.self) else { return }
provider.loadObject(ofClass: UIImage.self) { image, _ in
DispatchQueue.main.async {
self.selectedImage = image as? UIImage
}
}
}
結論:**無法呼叫系統「自定義相簿」介面**,請在自家沙盒目錄管理圖片,並自行實作或使用 `PHPickerViewController` 選擇器。