中级篇第九期:相册与拍照初使用

废话不多说哦,边上代码边解释咯

首先我们来讲调用系统的相机咯

    
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = NO;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentViewController:picker animated:YES completion:nil];

那么这个时候,我们还需要判断一下相关的权限,因为我们可以在手机的设置里面去更改当前app是否允许打开相机等操作

 
if(authStatus == ALAuthorizationStatusRestricted || authStatus == ALAuthorizationStatusDenied){
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:NTC_CAMERA_ALERT_MESSAGE delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
        [alertView show];
    }

接下来我们会走两个代理方法,就是下面这两个了,但是要导入2个头文件的Delegate哦

 
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [picker dismissViewControllerAnimated:YES completion:nil];
}
 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage* image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}

第一个方法就是取消,这个没什么好说的

第二个方法是拍照完成后,点击使用照片后调用的方法

这个时候我们需要在里面取出图片,然后做相应的操作

这就是相机的简单使用咯

接下来是相册

    
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = NO;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentViewController:picker animated:YES completion:nil];

其实跟相机的调用都差不多,只不过改一个属性而已

当然了,我们也还是要判断一下权限的哦

 
ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];
    if(author == ALAuthorizationStatusDenied || author == ALAuthorizationStatusRestricted) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:NTC_PHOTOS_ALERT_MESSAGE delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
        [alertView show];
    } else {
        //可以使用
    }

然后还是走的之前的两个Delegate方法

好啦,这就是相册与拍照的最基本的使用了哦

时间: 2024-11-24 01:33:52

中级篇第九期:相册与拍照初使用的相关文章

初级篇第九期:学习相册与拍照

学习建议:自己动手,丰衣足食 学习周期:1周 学习目的:熟练使用相册和拍照 学习答疑:欢迎来技术群里提问并做分享 学习工具:Xcode开发环境 学习内容:熟悉相册与拍照的那点事情 说到相册与拍照,我想对于现在的小伙伴们来讲,可以说是再熟悉不过了,因为每个人都希望用自己的app去拍照,去玩相册,几乎很多很多的APP里面都会有相关的功能,所以对于这方面的内容来讲,是非常非常重要的哦,所以小伙伴们一定要好好学习它哦 其实说它们简单?那真是言之过早,对于相册与拍照的相关优化真的可以说的上是很深的坑哦,一

进阶篇第九期:相册与拍照的后处理

在中级篇里面,已经介绍过相册与拍照的简单使用了,那么接下来我们就来讲一讲它们的后续处理,到底应该怎么做才好呢 首先我们先来讲拍照 还是那个点击使用照片后调用的代理方法中,我们来做以下代码中所提到的事情   - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {     [picker dismissViewControl

经验篇第九期:群里的那点事儿(九)

问题1:记录ScrollView的偏移量 问题2:将钱数的...分隔 问题3:关于下面表达式错误的原因 欢迎小伙伴们常来群里提出技术问题~~并且帮他人解决问题哦

娱乐篇第九期:互联网的事情you意思(九)

哈哈,小弟有跟某个校友开玩笑呢,做了个藏头诗戏弄他 宇宙中心五道口 晨行地铁人茫茫 师大美女多如云 从此帅哥是路人 蓝天白云花儿美 翔鹰横空展翅飞 任其鲜血止不住 性情善变花儿红 这周比较忙,小弟白天都没有抽出额外的时间去看互联网上那些有意思的事情,真是惭愧,但还好,工作任务量并不是很大

随心篇第九期:我不愿一无所有

这周项目组的小组长找我单独聊了天,聊的是关于我们这个项目组未来的趋势,毕竟我们这个项目组只有技术的同事是我们一个组的,其余的同事都是另几个组的,现在要合并成一个大组 听起来还不错,毕竟这个项目组还是蛮有潜力的,但是如果留下来的话,就面临着组长的更换 听到这个消息很伤心,我一时不知道该如何选择,毕竟在之前的小组也半年多了,跟组长相处融洽,而且很多地方都很照顾我,包括工作的事情,我刚毕业,他并不会为难我,我很欣慰,和他相处的这段日子里,我感觉很轻松,很开心,我觉得可以跟着一个相处融洽的领路人,是一件

Farseer.net轻量级开源框架 中级篇:数据库切换

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: 动态数据库访问 下一篇:Farseer.net轻量级开源框架 中级篇: SQL执行报告 上文中讲述了,在项目运行过程中,如何通过代码动态改变数据库的访问,这种方式更加倾向于实体类相同,有多个相同的表结构. 本篇中讲述的是,如何快速切换不同的数据库.比如你现在使用在使用SqlServer 哪天数据库老板心血来潮,让你换成Oracle了,怎么办? 这种数据库的切换在ORM中能明显突出

Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能

定位+移动选址 百学须先立志-学前须知: 我们经常在各大主流APP上要求被写上地址,如百度外卖.爱鲜蜂收货地址等等:其中他们大多数是可以让我们在地图上移动选址.就如下面这段GIF演示的一样: 尽信书,不如无书-能学到什么? 1.地图状态MapStatus类及监听setOnMapStatusChangeListener 2.定位LocationClient类 3.反地理编码GeoCoder类 工欲善其事必先利其器-申请Key 百度地图访问应用(AK)申请地址:http://lbsyun.baidu

iOS访问相册及拍照保存的实现实例

iOS访问相册及拍照保存的实现实例 实现效果: 1.点击访问相册按钮,可以访问系统相册,选择以后返回在imageView中显示 2.点击拍照,访问摄像头,实现以后保存在相册中,返回在imageView中显示 注意:拍照功能需要真机调试,模拟器无法实现 模拟器会有如下效果~弹出警告框 工程下载:github工程下载链接 下面是程序:注意此例中两个button和UIimageView在storyboard中添加: ViewController.h @interface ViewController

在Eclipse中使用JUnit4进行单元测试(中级篇)【转】

我们继续对初级篇中的例子进行分析.初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4. 一.     包含必要地Package 在测试类中用到了JUnit4框架,自然要把相应地Package包含进来.最主要地一个Package就是org.junit.*.把它包含进来之后,绝大部分功能就有了.还有一句话也非常地重要“import static org.junit.Assert.*;”