swift 快速奔跑的兔几 本节的内容是:使用照片库
除了播放视频和音频之外,iOS和OS X还允许访问内置的相机系统来采集视频和音频。 要在iOS上从相机采集视频和照片,可以使用一个名为UIImagePickerController的视图控制器。 我们可以使用UIImagePickerController来判断有哪些功能可供使用,并相应调整app的行为。例如,要判断是否有任何类型的相机可用: // 判断哪些类型的相机可用
let sourceType = UIImagePickerControllerSourceType.Camera
if(UIImagePickerController.isSourceTypeAvailable(sourceType)){
// 可以使用相机
}else{
// 不可以使用相机
}
还可以进一步指定是否有前置或者后置相机可用。 // 前置还是后置相机
let frontCamera = UIImagePickerControllerCameraDevice.Front
let rearCamera = UIImagePickerControllerCameraDevice.Rear
if(UIImagePickerController.isCameraDeviceAvailable(frontCamera)){
// 前置相机可用
}
if(UIImagePickerController.isCameraDeviceAvailable(rearCamera)){
// 后置相机可用
}
下面的代码是一个简单的应用程序,它将可以显示用户拍摄的照片。注意,该应用程序如果运行在模拟器上,将会无法看到照片。因为模拟器上木有真正的相机设备。 class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate{
@IBAction func takePhotos(sender: AnyObject) {
let picker = UIImagePickerController()
// 判断哪些类型的相机可用
let sourceType = UIImagePickerControllerSourceType.Camera
if(UIImagePickerController.isSourceTypeAvailable(sourceType)){
picker.sourceType = UIImagePickerControllerSourceType.Camera
// 前置还是后置相机
let frontCamera = UIImagePickerControllerCameraDevice.Front
let rearCamera = UIImagePickerControllerCameraDevice.Rear
if(UIImagePickerController.isCameraDeviceAvailable(frontCamera)){
// 前置相机可用,使用前置相机
picker.cameraDevice = frontCamera
}else{
// 使用后置相机
picker.cameraDevice = rearCamera
}
picker.delegate = self
self.presentViewController(picker,animated: true,completion: { () -> Void in
// nil
})
}
}
@IBOutlet weak var imageView: UIImageView!
func imagePickerController(picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let image:UIImage = info[UIImagePickerControllerOriginalImage] as! UIImage
self.imageView.image = image
picker.dismissViewControllerAnimated(true,completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
picker.dismissViewControllerAnimated(true,completion: nil)
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 用记事本编辑创建Xml文件,访问的时候显示错误-解决办法
- c# – 如何指定是否取得编组字符串的所有权?
- 嵌入式sqlite3数据库编程介绍
- oracle创建表空间以及用户角色Demo
- dojo自定义组件错误 : id is already register
- 在OS X上重新安装Ruby
- Nginx+uWsgi+Django+Python+MongoDB+mySQL服务器搭建
- flutter – 在bottomNavigationBar下显示bottomSheet
- Oracle登录失败,ORA-01033:ORACLE initialization or shu
- 启动图像未显示在iOS应用程序(使用Images.xcassets)