斯威夫特 - 以照片或选择现有

问题描述:

每当我使用的应用程序,它要求合影,这样的事情会弹出: enter image description here斯威夫特 - 以照片或选择现有

做任何你们中有什么是真正回事参考这里?是否有一些内置函数或开源库用于此?我似乎无法在互联网上找到任何具体资源。

谢谢!

+0

看起来像你的基本模态警报给我。没什么更多。 *真实*问题是您在“拍照”或“选择现有”时看到的内容 - 他们是否使用UIImagePickerController? – dfd

在您的截图中,你看到的UIAlertController有两个动作:

let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 
let cameraAction = UIAlertAction(title: "Take Photo", style: .default, handler: nil) 
let photoLibraryAction = UIAlertAction(title: "Choose Existing", style: .default handler: nil) 

actionSheet.addAction(camerAction) 
actionSheet.addAction(photoLibraryAction) 

要访问图片库,或用相机拍摄新照片,你可能想看看UIImagePickerController

+1

正是我所需要的 - 这是一个UIAlertController。谢谢! – Ryan

看起来像图书馆呈现UIAlertControllerUIAlertControllerStyle枚举actionSheet。取决于选择,然后使用sourceTypephotoLibrarycamera实例化UIImagePickerController

这是获取用户图像的标准行为。

你必须通过检查相机源可用,然后添加相关动作控制器动态地构建一个UIActionController

let actionController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 

if UIImagePickerController.isSourceTypeAvailable(.camera) { 
    let action = UIAlertAction(title: "Take Photo", style: .default, handler: { _ in 
     print("User tapped 'Take Photo'") 
    }) 
    actionController.addAction(action) 
} 

您还需要创建“选择现有”另一个动作和“取消”按钮。

然后只显示当前视图控制器中的动作控制器。

+0

谢谢!这非常有帮助。 – Ryan