打开相机:

//先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
// if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
// sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// }
//sourceType = UIImagePickerControllerSourceTypeCamera; //照相机
//sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //图片库
//sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片
UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化
picker.delegate = self;
picker.allowsEditing = YES;//设置可编辑
picker.sourceType = sourceType;
[self presentModalViewController:picker animated:YES];//进入照相界面
[picker release];

在iPhone和iPod touch上面系统始终以UIModalPresentationFullScreen模式显示presented VC。

打开相册:(区分pad和iphone)

for iphone

UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//pickerImage.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType]; }
pickerImage.delegate = self;
pickerImage.allowsEditing = NO;
[self presentModalViewController:pickerImage animated:YES];
[pickerImage release];

会在一个新的窗口中打开

for ipad:

On iPad, UIImagePickerController must be presented via UIPopoverController

不是你想不想的问题,是苹果让你想不想的问题

UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;//是否允许编辑
picker.sourceType = sourceType;
/*
如果从一个导航按钮处呈现,使用:
presentPopoverFromBarButtonItem:permittedArrowDirections:animated:;
如果要从一个视图出呈现,使用:
presentPopoverFromRect:inView:permittedArrowDirections:animated: 如果设备旋转以后,位置定位错误需要在父视图控制器的下面方法里面重新定位:
didRotateFromInterfaceOrientation:(在这个方法体里面重新设置rect)
然后再次调用:
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated
*/
//UIPopoverController只能在ipad设备上面使用;作用是用于显示临时内容,特点是总是显示在当前视图最前端,当单击界面的其他地方时自动消失。
UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:picker];
self.imagePicker = popover;
//permittedArrowDirections 设置箭头方向
[self.imagePicker presentPopoverFromRect:CGRectMake(, , , ) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[picker release];
[popover release];

最新文章

  1. 使用Node.js+Socket.IO搭建WebSocket实时应用
  2. iOS tableview自定义cell上添加按钮实现删除功能
  3. MFC 对话框响应OnChar()
  4. mvc 项目下 webservice 程序无法运行
  5. MySQL记录
  6. haproxy simple cfg
  7. js 神代码
  8. uva 10810
  9. linux下定时任务
  10. my dup2
  11. n!的近似值 (stirling approximation)与 大O记法(big -O- notation)
  12. EnumPrinters用法
  13. .net开源权限管理系统
  14. jQuery动画详解
  15. mysql数据库的基本操作:索引、视图,导入和导出,备份和恢复
  16. VideoPlayer播放
  17. Tools - 使用Doxygen和Graphviz分析代码
  18. HDU1233(Kruskal&Prim两解)
  19. LOJ#2095 选数
  20. PYTHON-流程控制之if/while/for

热门文章

  1. c缺陷与陷阱笔记-第二章 语法陷阱
  2. AAC ADTS AAC LATM 格式分析
  3. utf-8转换为ansi和修改文件名的批处理(可解决source insight中文注释乱码问题)
  4. Altium designer中级篇-名称决定多边形连接样式
  5. Android:控件布局(单帧布局)FrameLayout
  6. 转:数据包经由路由转发时源、目的IP地址及MAC地址变化情况
  7. pb 插入控件是出问题
  8. Android开发之动画(转)
  9. 20款最优秀的JavaScript编辑器
  10. POJ 3683 Priest John's Busiest Day (2-SAT,常规)