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