我们知道,在iPhone中获取照片库常用的方法如下:
UIImagePickerController *m_imagePicker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary]) {
m_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
m_imagePicker.delegate = self;
// [m_imagePicker.navigationBar.subviews];
[m_imagePicker setAllowsEditing:NO];
//m_imagePicker.allowsImageEditing = NO;
[self presentModalViewController:m_imagePicker animated:YES];
[m_imagePicker release];
}else {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"Error accessing photo library!" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alert show];
[alert release];
}
这对iPhone的操作是没有问题的。但是当我们在iPad环境中却有问题了,当我们运行时会报如下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'On iPad, UIImagePickerController must be presented via UIPopoverController'
所以我们必须通过UIPopoverController来实现才行。具体实现如下:
UIImagePickerController *m_imagePicker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary]) {
m_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
m_imagePicker.delegate = self;
[m_imagePicker setAllowsEditing:NO];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:m_imagePicker];
self.popoverController = popover;
//popoverController.delegate = self;
[popoverController presentPopoverFromRect:CGRectMake(0, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
//[self presentModalViewController:m_imagePicker animated:YES];
[popover release];
[m_imagePicker release];
}else {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"Error accessing photo library!" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alert show];
[alert release];
}
这里需要注意,对局部UIPopoverController对象popover我们赋给了一个全局的UIPopoverController对象popoverController。而不能直接调用popover。因为在popover对象还可见时,是不能够被释放的。
原文地址:
http://blog.csdn.net/fxj281314/article/details/6050588
分享到:
相关推荐
根据提供的文件信息,可以看出主题涉及的是苹果设备API、位置服务、加速度计、摄像头以及电池寿命和电源管理等内容,这些知识点通常被广泛应用于iOS设备上的iPhone或iPad应用程序开发。以下是对文件内容的知识点详细...
在iOS开发中,iPhone的相册和照相机功能是用户界面不可或缺的部分,它们为用户提供了一种方便的方式来管理和捕捉生活中的瞬间。本篇文章将深入探讨如何利用UIImagePickerController类来集成这些功能到你的应用程序中...
9. **测试与适配**: 确保在不同的设备(iPhone/iPad)和操作系统版本上测试,因为不同设备的相机布局和用户权限可能有差异。同时,考虑到横竖屏切换的适配。 在"PhotoUpLoadDemo"这个项目中,开发者可以深入理解...
不同的iOS设备可能有不同的屏幕尺寸和相机能力,因此在实现这些功能时,需要确保代码能够适应iPhone、iPad以及不同方向的屏幕。 通过以上步骤,开发者可以在iOS应用中为用户提供完整的图片选择和拍照功能。记住,...
在iPad和iPhone上均可使用。 特征: 前后摄像头切换闪光灯开/关朝多个方向拍照使用“增大音量”硬件按钮触发图片确认画面在确认画面中放大图像在确认画面中显示信息安装从CocoaPods 将pod '...
- 在iPad上,`UIImagePickerController`默认显示为全屏,而在iPhone上则显示为弹出视图。你可以通过调整`modalPresentationStyle`来改变这一行为。 - 对于隐私考虑,首次访问摄像头或照片库时,系统会弹出提示,用户...
7. **屏幕适配**:考虑到应用可能在iPhone和iPad上运行,我们需要处理屏幕尺寸差异。使用Auto Layout或Size Classes可以确保应用在不同设备上正确布局。 8. **性能优化**:在处理大量绘图操作时,需要注意性能优化...
armv7和armv7s是针对ARM Cortex-A系列处理器的不同版本,常见于早期的iPhone和iPad。i386适用于32位的iOS模拟器,而x86_64则是针对64位的iOS模拟器。arm64是为64位ARM处理器(如Apple的A7及以后的芯片)设计的。需要...
音乐是iOS的重要组成播放,无论是iPod、iTouch、iPhone还是iPad都可以在iTunes购买音乐或添加本地音乐到音乐库中同步到你的iOS设备。 本文将给大家详细介绍关于iOS获取系统iTunes音乐的相关内容,分享出来供大家参考...
- 考虑到不同设备(iPhone、iPad)和iOS版本的差异,图片选择器需要进行相应的适配,确保在各种环境下都能正常工作。 综上所述,"图片选择器"在iOS开发中涉及到的知识点包括系统API的使用、权限管理、UI设计、性能...
在这一章节中,讲师详细讲解了与媒体相关的几个关键知识点,包括UIImagePickerController的使用、MPMoviePlayerController的视频播放功能、ALAssetsLibrary的图像和视频存储方式,以及声音处理技术。 ### ...
`ZBarSDK`支持多种类型的条码格式,包括QR Code、Code 128、EAN等,对于64位架构的iOS设备,ZBarSDK也提供了兼容性,确保在iPhone 5s及更高版本、iPad Air及以上设备上的正常运行。 要使用`ZBarSDK`,首先需要将其...
这意味着无论用户使用的是旧款iPhone还是新款iPad,应用都能流畅运行,提高了应用的兼容性和用户体验。特别是在XCode 6.1环境下编译的项目,确保了与当时主流设备的兼容性。 四、真机测试与优化 为了确保应用在...
它支持iPhone和iPad。安装pod 'CZPhotoPickerController'用法: __weak typeof(self) weakSelf = self;self.photoPicker = [[CZPhotoPickerController alloc] initWithCompletionBlock:^(UIImagePickerController *...
本文将深入探讨如何在iPhone上使用照相机功能,包括基础的相机使用、图片处理以及一些高级特性。 首先,我们要引入`AVFoundation`框架,它是iOS中处理多媒体数据的核心框架,包含了对相机操作的支持。在Xcode项目中...
7. **适配不同屏幕尺寸**:考虑到iOS设备的多样性,`PKImagePickerDemo`应该能适应iPhone和iPad的不同屏幕尺寸,以及横竖屏切换。 8. **国际化**:如果`PKImagePickerDemo`设计得足够全面,那么它可能还支持多种...
- **定义与特性**:iOS 5 是苹果公司在2011年发布的一款操作系统,它是为iPhone、iPod touch 和 iPad 设计的操作系统。 - **重要更新**:包括对Siri语音助手的支持、全新的通知中心、iMessage即时消息服务等功能。...