ios中关于UIImagePickerController的一些知识总结
记得添加MobileCoreServices.framework
及导入#import <MobileCoreServices/MobileCoreServices.h>
@interface PPViewController ()<UIActionSheetDelegate,UINavigationControllerDelegate, UIImagePickerControllerDelegate> { UIImagePickerController *_pickerController; } @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation PPViewController - (void)viewDidLoad { [super viewDidLoad]; _pickerController = [[UIImagePickerController alloc] init]; _pickerController.delegate = self;//设置代理 _pickerController.allowsEditing = YES;//图片可编辑(放大缩小) } - (IBAction)choseImage:(id)sender { // 判断是否有相机 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { //判断是否能摄像 if ([[UIImagePickerController availableMediaTypesForSourceType:_pickerController.sourceType] containsObject:(NSString *)kUTTypeMovie]) { _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:nil otherButtonTitles:@"相册",@"相机",@"摄像机", nil]; sheet.tag = ; [sheet showInView:self.view]; } else { UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:nil otherButtonTitles:@"相机",@"相册", nil]; sheet.tag = ; [sheet showInView:self.view]; } } else {//模拟器 UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:nil otherButtonTitles:@"相册", nil]; sheet.tag = ; [sheet showInView:self.view]; } } #pragma mark- UIActionSheet的代理方法 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if (actionSheet.tag == ) { switch (buttonIndex) { case : { _pickerController.sourceType = UIImagePickerControllerSourceTypeCamera; _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; [self presentViewController:_pickerController animated:YES completion:nil]; } break; case : { _pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; [self presentViewController:_pickerController animated:YES completion:nil]; } break; default: break; } } if (actionSheet.tag == ) { switch (buttonIndex) { case : { _pickerController.sourceType = UIImagePickerControllerSourceTypeCamera; _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; [self presentViewController:_pickerController animated:YES completion:nil]; } break; case : { _pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; [self presentViewController:_pickerController animated:YES completion:nil]; } break; case : { _pickerController.sourceType = UIImagePickerControllerSourceTypeCamera; // pickController.videoQuality = UIImagePickerControllerQualityTypeLow;//可以选择图片质量 _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; [self presentViewController:_pickerController animated:YES completion:nil]; } default: break; } } if (actionSheet.tag == ) { if (buttonIndex == ) { _pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // _pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; [self presentViewController:_pickerController animated:YES completion:nil]; } } } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSLog(@"========%@",info);//返回的值都在info里面 if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString *)kUTTypeMovie]) { _imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfFile:(NSString *)[[info objectForKey:UIImagePickerControllerMediaURL] path]]]; } else { _imageView.image = [info objectForKey:@"UIImagePickerControllerEditedImage"]; } [self dismissViewControllerAnimated:YES completion:nil]; } //如果这是一个modalViewController,需要dismiss 它发了个cancel消息,必须关闭它 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [self dismissViewControllerAnimated:YES completion:nil]; } /** * { UIImagePickerControllerMediaType = "public.image"; UIImagePickerControllerOriginalImage = "<UIImage: 0x7fe3a3dc2a20> size {1500, 1001} orientation 0 scale 1.000000"; UIImagePickerControllerReferenceURL = "assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG"; } */ /** * { UIImagePickerControllerCropRect = "NSRect: {{0, 0}, {1500, 1003}}"; UIImagePickerControllerEditedImage = "<UIImage: 0x7fec5c8145b0> size {638, 426} orientation 0 scale 1.000000"; UIImagePickerControllerMediaType = "public.image"; UIImagePickerControllerOriginalImage = "<UIImage: 0x7fec5c80d4c0> size {1500, 1001} orientation 0 scale 1.000000"; UIImagePickerControllerReferenceURL = "assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG"; } */
ios中关于UIImagePickerController的一些知识总结的更多相关文章
- Android 和iOS 中关于View 的一点知识
View的概念和方法十分重要,这里将对Android 和iOS中出现的,关于视图的一些知识点进行总结,预计文章会比较长,要许多时间慢慢补充. 先转载一部分资料,感谢原作者! 原链接为:http://b ...
- ios中改变UIImagePickerController页面的button的文字为中文
可以在工程中直接 project-->info-->Localization native development region 赋值为 zh_CN
- iOS中多线程知识总结(一)
这一段开发中一直在处理iOS多线程的问题,但是感觉知识太散了,所以就把iOS中多线程的知识点总结了一下. 1.基本概念 1)什么是进程?进程的特性是什么? 进程是指在系统中正在运行的一个应用程序. ...
- iOS狂暴之路---iOS的第一个应用中能学到哪些知识
一.前文回顾 在之前已经介绍了 iOS的学习路线图,因为中间遇到一些Android开发问题,所以就耽搁了一段时间,那么接下来的这段时间我们将继续开始iOS的狂暴之路学习,按照国际惯例,第一个应用当然是 ...
- ios 中使用https的知识
先看文章,这篇文章说的是使用AFNetworing进行https时的事项,十分好!http://blog.cnbang.net/tech/2416/ ios中使用https,主要就是使用NSURLCr ...
- ios中摄像头/相册获取图片压缩图片上传服务器方法总结
本文章介绍了关于ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结,有需要了解的同学可以参考一下下. 这几天在搞iphone上面一个应用的开发,里面有需要摄像头/相册编程和图片上传的问 ...
- Cordoval在iOS中的运用整理
一:关于Cordoval理论知识 1:PhoneGap是手机平台上流行的一款中间件.它构建在各种手机平台所提供的WebView(浏览器内核)组件的基础之上,使用javascript语言对应用开发者提供 ...
- ios中的几种多线程实现
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法.下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, Thread;2, Cocoa ...
- IOS中调用系统的电话、短信、邮件、浏览功能
iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...
随机推荐
- screen实现关闭ssh之后继续运行代码
本文基于Ubuntu 14.04 使用SSH连接远程服务器,启动服务,退出SSH后,服务也就终止了,使用Screen可以解决这个问题. 1.安装Screen apt-get install scree ...
- git切换分支
今天同事问我她的报错了,我看了一下,是分支没有指向远程仓库对应的分支;报错如下; $ git pull There is no tracking information for the current ...
- Simple python reverse shell
import base64,sys; import socket,struct s=socket.socket(2,socket.SOCK_STREAM) s.connect(('Attack's I ...
- 关于js优化和css优化
css优化: 1.css代码的压缩. 2.css文件的合并. 3.不滥用float,因为float在渲染时计算量比较大,所以尽量减少使用float. 4.避免在html标签中写style属性. js优 ...
- PAT 团体程序设计天梯赛-练习集 L1-020. 帅到没朋友
原题 https://www.patest.cn/contests/gplt/L1-020 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. ...
- 前台javascript排序
<script type="text/javascript"> $(function () { $('.Sorthead-ShowUp').click(function ...
- Qt_DX
#ifndef MY_FRAME__HH__ #define MY_FRAME__HH__ #include <QtGui/QWidget> struct IDirect3D9; stru ...
- LeetCode OJ 153. Find Minimum in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
- javascript焦点图之垂直滚动
html代码布局,需要用到定位,不细说了 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 关于UIFont和计算字符串的高度和宽度
转自:http://i.cnblogs.com/EditPosts.aspx?opt=1 1.创建方法:+ fontWithName:size:- fontWithSize:2.创建系统字体:+ sy ...