Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片

Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片,第1张

概述Swift学习笔记(4)使用UIImagePickerController实现从设备图片库照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePickerController可以轻易地实现从设备图片库和照相机获取图片。 目录 Swift学习笔记4使用UIImagePickerController实现从设备图片库和照相机获取图片 目录 声明协议 创 Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片

设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePickerController可以轻易地实现从设备图片库和照相机获取图片。

目录 Swift学习笔记4使用UIImagePickerController实现从设备图片库和照相机获取图片 目录 声明协议 创建UIImagePickerController UIImagePickerControllerDelegate委托 UINavigationControllerDelegate协议 图片编辑 iOS 9 中的新错误 声明协议

UIVIEwController需声明实现如下两个协议

class vIEwController: UIVIEwController,UIImagePickerControllerDelegate,UINavigationControllerDelegate{...}
创建UIImagePickerController

定义一个UIImagePickerController

var imagePicker:UIImagePickerController!

创建一个UIbutton,在其IBAction中添加代码

设备图片库:

if self.imagePicker == nil{    self.imagePicker = UIImagePickerController()}self.imagePicker.delegate = self//设置图片来源为设备图片库self.imagePicker.sourceType = .Photolibraryself.presentVIEwController(self.imagePicker,animated: true,completion: nil)

照相机:

if UIImagePickerController.isSourceTypeAvailable(.Camera){   if self.imagePicker == nil{       self.imagePicker = UIImagePickerController()   }   self.imagePicker.delegate = self   //设置图片来源为相机   self.imagePicker.sourceType = .Camera   self.presentVIEwController(self.imagePicker,completion: nil)} else{  //d出警告框  let errorAlert = UIAlertController(Title: "相机不可用",message: "",preferredStyle: UIAlertControllerStyle.Alert)  let cancelAction = UIAlertAction(Title: "确定",style: UIAlertActionStyle.Cancel,handler: nil)  errorAlert.addAction(cancelAction)  self.presentVIEwController(errorAlert,completion: nil) }
UIImagePickerControllerDelegate委托

取消图片获取:

func imagePickerControllerDIDCancel(picker: UIImagePickerController) {     self.imagePicker = nil     self.dismissVIEwControllerAnimated(true,completion: nil)}

完成图片获取:

func imagePickerController(picker: UIImagePickerController,dIDFinishPickingMediawithInfo info: [String : AnyObject]) {     //从info中取出获取的原始图片     let image = info[UIImagePickerControllerOriginalimage] as! UIImage         self.imageVIEw.image = image     //设置图片显示模式     self.imageVIEw.contentMode = .ScaleAspectFill     self.imagePicker.delegate = nil     self.dismissVIEwControllerAnimated(true,completion: nil)}
UINavigationControllerDelegate协议

以下两个协议可以根据需求来选择是否实现

- navigationController:willShowVIEwController:animated- navigationController:dIDShowVIEwController:animated
图片编辑

如果要将原始图片进行编辑如缩放,裁剪等后再使用

则在创建UIImagePickerController时添加:

self.imagePicker.allowsEditing = true

然后将实现UIImagePickerControllerDelegate中的

let image = info[UIImagePickerControllerOriginalimage] as! UIImage

改为

let image = info[UIImagePickerControllerEditedImage] as! UIImage
iOS 9 中的新错误

如果在iOS 9 Xcode 7.1 以上的版本运行可能会报以下错误

_BSMachError: (os/kern) invalID capability (20)_BSMachError: (os/kern) invalID name (15)

解决方法:

打开Info.pList,将Localization native development region中的值由en改为United States

总结

以上是内存溢出为你收集整理的Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片全部内容,希望文章能够帮你解决Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存