Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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

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

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

目录

声明协议

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 = .PhotoLibrary
self.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{
  //弹出警告框
  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实现从设备图片库和照相机获取图片所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。