
在最近的项目中,因为您需要访问相册以设置头像,所以我最初认为这是一个非常简单的问题. 只需调用UIImagePickerController从相册中选择照片即可. 它一直都是一样的,但是我曾经在iPhone上实现过,这次是在iPad上实现,而且我们的项目仅支持横向,所以当我使用专辑时,程序直接崩溃了,这没想到. 错误原因是
受支持的方向与应用程序没有共同的方向,并且[PUUIAlbumListViewController shouldAutorotate]返回YES
在Internet上找到的解决方案主要是向UIImagePickerViewController添加类别并重写其设备方向的方法. 以下是上面的堆栈溢出答案


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

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

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

但是,这不是我想要的效果,哦,天哪,没有其他解决办法了.
很长一段时间以来,我一直对此问题感到困扰ios 横屏打开相册,但是幸运的是,后来仍然解决了,就像您自己先(* ^ __ ^ *)
受上述堆栈溢出解决方案的启发,由于相册不支持横屏,因此表示调用相册时设备支持所有方向,取消相册时设备仅支持横屏. . 那时,我只在名为专辑的viewController中重写了设备支持方法. 结果自然是无用的. 后来,我尝试重写条目类中的方法

-(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
只能说你自己缺脑子
经济的发展