系统提供的UIImagePickerController

1.从系统相册中读取

/*

判断选择的读取类型是否支持

UIImagePickerControllerSourceTypePhotoLibrary,普通相册

UIImagePickerControllerSourceTypeCamera, 镜头(拍照、录视频)

UIImagePickerControllerSourceTypeSavedPhotosAlbum(自己保存的图片)

*/

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

self.imagePC = [[UIImagePickerController alloc] init];

_imagePC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

//相册操作由代理来监听 取消还是选择完成

_imagePC.delegate = self;

//展示相册

[self presentViewController:_imagePC animated:YES completion:nil];

}

2.拍照录视频

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

self.imagePC = [[UIImagePickerController alloc] init];

_imagePC.delegate = self;

_imagePC.sourceType = UIImagePickerControllerSourceTypeCamera;

//图片 public.image

//视频 public.movie

_imagePC.mediaTypes = @[@"public.movie"];

[self presentViewController:_imagePC animated:YES completion:nil];

}

3.代理

读取图片或者视频 统一回调这个代理

系统相册 一次只能选取一张

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{

[self dismissViewControllerAnimated:YES completion:nil];

NSLog(@"%@", info);

//    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

//    NSData *data = UIImagePNGRepresentation(image);

//    NSUInteger byte = data.length/8;

//    NSUInteger k = byte / 1024;

//    NSUInteger m = k / 1024;

//    NSLog(@"%ld", m);计算照片大小

}

//取消按钮被按了

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{

[self dismissViewControllerAnimated:YES completion:nil];

}

4.将图片保存到系统相册

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

时间: 2024-08-10 00:07:46

系统提供的UIImagePickerController的相关文章

(原)SQL Server 系统提供功能的三个疑惑

本文目录列表: 1.SQL Server系统提供的部分疑惑概述2.系统函数调用时DEFAULT代替可选参数使用不统一3.队列字段列message_enqueue_time记录的是UTC日期时间 4.@@Pack_Received系统函数提示信息有错误 5.总结语6.参考清单列表 正文: 1.SQL Server系统提供的部分疑惑概述   近来工作之余一直在系统地学习和研究SQL Server 数据库引擎这一整块,发现了一些原来没有太注意的东西,感觉SQL Server 光数据库引擎这块就有很多要

系统提供的dispatch方法

系统提供的dispatch方法 为了方便地使用GCD,苹果提供了一些方法方便我们将block放在主线程或后台线程执行,或者延后执行.使用的例子如下所示: // 后台执行: dispatch_async(dispatch_get_global_queue(0, 0), ^{ // something }); // 主线程执行: dispatch_async(dispatch_get_main_queue(), ^{ // something }); // 一次性执行: static dispatc

Span使用之系统提供的Span基本样式

Span的应用 在Android中,使用TextView显示文本,但往往有一些特殊的文本样式,比如一段文本,中间某几个字颜色不同或者中间某几个字能点击等等,这些样式如果没有不同,就编写一个新的TextView,那么一段文字将使用很多的TextView去显示,那么,有没有可能使用一个TextView显示所有文字,而基于文字定义不同的样式呢.这就是Span的作用. Span使用三部曲 Span是android提供的用于操作文本的样式的相关类.他能够精确地控制一段文本中具体某些文本的样式.基于Span

iOS系统提供开发环境下命令行编译工具:xcodebuild

iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的Xcode Project, 以及其他的项目中需要使用到的文件. 使用Workspace的好处有: 1),扩展项目的可视域,即可以在多个项目之间跳转,重构,一个项目可以使用另一个项目的输出.Workspace会负责各个Project

Android 系统提供的主题

android.R.style 列举了系统提供的样式主题. 在 xml 文件中,作为属性值使用时,需要将主题名称中的 "_"(短横)改为 .(点). Theme The default theme for apps on API level 10 and lower. Theme_Black Variant on Theme that ensures the background is completely black. Theme_Black_NoTitleBar Variant o

Swift - 访问通讯录联系人(使用系统提供的通讯录交互界面)

1,通讯录访问介绍 通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息.要实现访问通讯录有如下两种方式: (1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息 (2)AddressBookUI.framework框架 : 通过系统提供的通讯录交互界面来访问(本文样例使用此方式) 2,联系人记录的属性 在一条联系人记录中,有很多属性,而这些属性又分为单值属性和多值属性. 单值属性是只有一个值的属性:如姓氏.名字.部门.备注等. 多值属性

android系统提供的几种颜色Color

记录一下android自带颜色. Constants public static final int BLACK Added in API level 1 Constant Value: -16777216 (0xff000000)        public static final int BLUE Added in API level 1 Constant Value: -16776961 (0xff0000ff)       public static final int CYAN Ad

Android该系统提供的服务--Vibrator(振子)

Android该系统提供的服务--Vibrator(振子) --转载请注明出处:coder-pig Vibrator简单介绍与相关方法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 简单demo--设置频率不同的振动器 对于Vibrator用的最广泛的莫过于所谓的手

spring security 一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中 配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作. Spring Security 的前身是 Acegi S