IOS成长之路-调用照相机和相册功能
2024-10-16 23:55:40
打开相机:
//先设定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];
最新文章
- 使用Node.js+Socket.IO搭建WebSocket实时应用
- iOS tableview自定义cell上添加按钮实现删除功能
- MFC 对话框响应OnChar()
- mvc 项目下 webservice 程序无法运行
- MySQL记录
- haproxy simple cfg
- js 神代码
- uva 10810
- linux下定时任务
- my dup2
- n!的近似值 (stirling approximation)与 大O记法(big -O- notation)
- EnumPrinters用法
- .net开源权限管理系统
- jQuery动画详解
- mysql数据库的基本操作:索引、视图,导入和导出,备份和恢复
- VideoPlayer播放
- Tools - 使用Doxygen和Graphviz分析代码
- HDU1233(Kruskal&;Prim两解)
- LOJ#2095 选数
- PYTHON-流程控制之if/while/for
热门文章
- c缺陷与陷阱笔记-第二章 语法陷阱
- AAC ADTS AAC LATM 格式分析
- utf-8转换为ansi和修改文件名的批处理(可解决source insight中文注释乱码问题)
- Altium designer中级篇-名称决定多边形连接样式
- Android:控件布局(单帧布局)FrameLayout
- 转:数据包经由路由转发时源、目的IP地址及MAC地址变化情况
- pb 插入控件是出问题
- Android开发之动画(转)
- 20款最优秀的JavaScript编辑器
- POJ 3683 Priest John's Busiest Day (2-SAT,常规)