IOS 在Ipad 横屏 上使用UIImagePickerController

转载前请注明来源:http://www.cnblogs.com/niit-soft-518/p/4381328.html

最近在写一个ipad的项目,该项目必须是横屏。进入正题,有一项功能是要调用系统的牌照和相册,于是本屌用了 UIImagePickerController,兴冲冲的运行了一下,呵呵,崩掉了,然后带着高逼格去查苹果文档,一堆英文,不懂,好吧,百度一下,发现好多同道中人说 UIImagePickerController必须要竖屏,不能横屏~这让我差点泪崩,又继续看苹果文档,发现了新大陆:

  1. Present the user interface. On iPhone or iPod touch, do this modally (full-screen) by calling the presentViewController:animated:completion: method of the currently active view controller, passing your configured image picker controller as the new view controller.

    On iPad, the correct way to present an image picker depends on its source type, as summarized in this table:

     

    Camera


    Photo Library


    Saved Photos Album


    Use full screen


    Must use a popover


    Must use a popover

    The table indicates that on iPad, if you specify a source type of  UIImagePickerControllerSourceTypePhotoLibrary or UIImagePickerControllerSourceTypeSavedPhotosAlbum, you must present the image picker using a popover controller, as described in Presenting and Dismissing the Popover. If you attempt to present an image picker modally (full-screen) for choosing among saved pictures and movies, the system raises an exception.

    On iPad, if you specify a source type of UIImagePickerControllerSourceTypeCamera, you can present the image picker modally (full-screen) or by using a popover. However, Apple recommends that you present the camera interface only full-screen.

好吧,以我四级未过的英语水平就不做翻译了,大概的意思就是说 如果在ipad中用uiimagepickercontroller,必须使用POPOverController,然后我就试着写了一下,果然很OK!

以下是代码:

  一个调用相册的功能:

/*
 相册
 */
-(void)Photo:(UIButton *)sender{
    imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    // 编辑模式
    imagePicker.allowsEditing=NO;
    UIPopoverController *pop=[[UIPopoverController alloc]initWithContentViewController:imagePicker];
//    [self presentViewController:imagePicker animated:YES completion:NULL];
    [pop presentPopoverFromRect:sender.bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
}

效果:

时间: 2024-10-19 13:32:38

IOS 在Ipad 横屏 上使用UIImagePickerController的相关文章

iPad横屏模式研究

在iPad应用开发时如何让设备只支持横屏(landscape)模式,我做了多次尝试,并没有发现比较简捷的设置方法.我尝试了大概大概3种方式. 1.通过XCode设置“iPad Deployment info”,只选择横屏左和横屏右,部署测试后并没有生效,这种方法实质是在xxx_info.plist项目配置文件中添加如下信息: <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UI

IOS开发之文件上传

IOS开发之文件上传 在移动应用开发  文件形式上传是必不可少的,最近把IOS这块文件上传文件代码简单的整理一下,如果大家有需要安卓这边的代码,本人也可以分享给大家!QQ群:74432915  欢迎大家一起探讨 首先本demo采用网上开源框架 AFNetworking  源码:http://download.csdn.net/detail/wangliang198901/7809439 将整个框架导入IOS新建立的工程中 在FKAppDelegate.h声明 如下: #import <UIKit

iOS 运行时ScrollView上出现空白空间-解决方案

iOS7 中的UIViewControllers设置了automaticallyAdjustsScrollViewInsets.如果是YES,scrollview会根据status bar, navigation bar以及tool bar或者tab bar的高度自动调整.可以通过在storyboard的右侧进行设置,在Attributes Inspector中,不勾选"Adjust Scroll View Insets". 翻译自: http://stackoverflow.com/

IOS 关于ipad iphone5s崩溃 解决

之前 我这一直没有以上两款测试机  于是发布被退回了.说是这两款 开启动就崩. 这种情况下 解决办法只有一个,就是bug重现,不然,你根本无法确定再一次提交是否是安全的.所以我借了一台 iPad mini 7.1.1和 退回说明的一样配置. 测试 bug果然.和给的crash说明一样 第三方库 百度地图那块有问题. 各种调试之后,我参照网友博客添加说明如下对比图 1.将API的libs文件夹拷贝到您的Application工程跟目录下2.在XCode的Project -> Edit Active

ios通知使用 书上案例 简单易懂

/* The notification name */const NSString *ResultOfAppendingTwoStringsNotification =@"ResultOfAppendingTwoStringsNotification"; /* Keys inside the dictionary that our notification sends */const NSString*ResultOfAppendingTwoStringsFirstStringInfo

iOS开发必读-GitHub 上Top100 的 Objective-C 项目

这篇文章是官方账号在简书推出的文章,感兴趣的请点击下面: 点我看<iOS开发必读-GitHub 上Top100 的 Objective-C 项目> 简单摘录5个项目: 1.AFNetworking 作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现

IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例

IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button. AD:[线下活动]三大新锐HTML 5企业汇聚51CTO—大话移动前端技术 IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button.代

iOS 不允许横屏的简单代码

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { return UIInterfaceOrientationMaskPortrait; } iOS 不允许横屏的简单代码

不推荐在iOS的浏览器应用上使用click和mouseover

iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS的浏览器应用上使用click和mouseover,因为这两个事件是为了支持鼠标点击而设计 出来的.Click事件在iOS上会有半秒左右的延迟,原因是iOS要highlight接收到click的element.而 mouseover/out等事件则会被手指的点击触发.所以,在iOS上,应当抛弃传统的交互事件模型而接受一个新的事件模型.Touch事件和更高级 的Gesture事件,能让你的网页交互起来像n