解决了iPad处于横向模式时调用相册崩溃的问题

电脑杂谈  发布时间:2020-05-16 17:27:30  来源:网络整理

ios 横屏打开相册_ios 横屏打开相册_ios强制横屏插件

在最近的项目中,因为您需要访问相册以设置头像,所以我最初认为这是一个非常简单的问题. 只需调用UIImagePickerController从相册中选择照片即可. 它一直都是一样的,但是我曾经在iPhone上实现过,这次是在iPad上实现,而且我们的项目仅支持横向,所以当我使用专辑时,程序直接崩溃了,这没想到. 错误原因是

受支持的方向与应用程序没有共同的方向,并且[PUUIAlbumListViewController shouldAutorotate]返回YES

在Internet上找到的解决方案主要是向UIImagePickerViewController添加类别并重写其设备方向的方法. 以下是上面的堆栈溢出答案

ios 横屏打开相册_ios 横屏打开相册_ios强制横屏插件

我在程序中尝试了此方法,但没有帮助.

与此同时,此答案下方还有另一种方法可以解决程序崩溃的问题,但是此演示文稿的效果好吗,我不想呕吐╮(╯▽╰)╭

ios 横屏打开相册_ios 横屏打开相册_ios强制横屏插件

将图片的框放在当前视图上,sourceRect决定将其放置在何处ios 横屏打开相册,并直接对其进行拦截

此演示文稿的效果就是UIPopoverController的效果.

ios 横屏打开相册_ios强制横屏插件_ios 横屏打开相册

但是,这不是我想要的效果,哦,天哪,没有其他解决办法了.

很长一段时间以来,我一直对此问题感到困扰ios 横屏打开相册,但是幸运的是,后来仍然解决了,就像您自己先(* ^ __ ^ *)

受上述堆栈溢出解决方案的启发,由于相册不支持横屏,因此表示调用相册时设备支持所有方向,取消相册时设备仅支持横屏. . 那时,我只在名为专辑的viewController中重写了设备支持方法. 结果自然是无用的. 后来,我尝试重写条目类中的方法

ios 横屏打开相册_ios 横屏打开相册_ios强制横屏插件

-(NSUInteger)应用程序: (UIApplication *)应用程序支持InterfaceOrientationsForWindow: (UIWindow *)窗口{returnUIInterfaceOrientationMaskAll;}

这自然是可能的,但是由此引起的问题是,取消相册时,设备无法切换回仅支持水平屏幕的状态. 在此步骤中,可以想到的是何时调用和取消相册时,通知设备应支持的方向. 用于设置头像的viewController具有更深的层次. 它原本打算使用通知,但没有成功. 具体原因被遗忘了. ⊙﹏⊙b汗

当我认真思考时,突然意识到我在项目中使用了单例课程,因此我想说是否可以给单例课程提供徽标以标识它是否在调用相册. 最终结果是这样

实验的结果自然是成功的. 当切换回当前程序时,屏幕旋转了,并且没有UI离开位置的情况. 但是,还有另一个地方在使用过程中不是很好. 呼叫相册时,相册的显示以垂直屏幕状态显示. 用户在使用时必须首先将屏幕旋转到垂直屏幕,然后在切换回程序时将其旋转回到水平屏幕. 支持的方向是横向

摘要,每次调用视图控制器时,将指定支持屏幕的方法-(UIInterfaceOrientationMask)应用程序: (UIApplication *)应用程序supportedInterfaceOrientationsForWindow: (UIWindow *)同时显示在视图控制器中的窗口那时,它将调用自己的支持屏幕方向的方法supportedInterfaceOrientations,以便在显示UIImagePickerController时,可以通过指定支持的方向来更改其在用户面前的显示方向.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-212134-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...