Swift - 使用UIImagePickerController从相册选择照片并展示

1,UIImagePickerController介绍
(1)选择相册中的图片或者拍照,都是通过UIImagePickerController控制器实例化一个对象,然后通过self.presentViewController方法推送出界面显示。
(2)使用presentViewController的类需要实现UIImagePickerControllerDelegate,UINavigationControllerDelegate两个代理。
(3)UIImagePickerController可以通过isSourceTypeAvailable方法来判断设备是否支持照相机/图片库/相册功能。如果支持,可以通过sourceType属性来设置图片控制器的显示类型。

2,下面通过一个样例,演示如何使用UIImagePickerController
(1)点击“选择照片”,自动打开相册选择照片
(2)照片选中后,返回原界面并加载照片原图,同时控制台会打印照片的info信息
(3)如果选择照片前打开“编辑”开关,选中照片后会先进入照片编辑页面

3,效果图如下:
   
 

4,代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import UIKit
 
class ViewController : UIViewController , UIImagePickerControllerDelegate ,
UINavigationControllerDelegate {
     
     @IBOutlet weak var imageView: UIImageView !
     @IBOutlet weak var editSwitch: UISwitch !
 
     override func viewDidLoad() {
         super .viewDidLoad()
     }
     
     //选取相册
     @IBAction func fromAlbum(sender: AnyObject ) {
         //判断设置是否支持图片库
         if UIImagePickerController .isSourceTypeAvailable(. PhotoLibrary ){
             //初始化图片控制器
             let picker = UIImagePickerController ()
             //设置代理
             picker.delegate = self
             //指定图片控制器类型
             picker.sourceType = UIImagePickerControllerSourceType . PhotoLibrary
             //设置是否允许编辑
             picker.allowsEditing = editSwitch.on
             //弹出控制器,显示界面
             self .presentViewController(picker, animated: true , completion: {
                 () -> Void in
             })
         } else {
             println ( "读取相册错误" )
         }
         
     }
     
     //选择图片成功后代理
     func imagePickerController(picker: UIImagePickerController ,
         didFinishPickingMediaWithInfo info: [ NSObject : AnyObject ]) {
         //查看info对象
         println (info)
         //获取选择的原图
         let image = info[ UIImagePickerControllerOriginalImage ] as ! UIImage
         imageView.image = image
         //图片控制器退出
         picker.dismissViewControllerAnimated( true , completion: {
             () -> Void in
         })
     }
     
     override func didReceiveMemoryWarning() {
         super .didReceiveMemoryWarning()
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值