iOS 8下UIImagePickerController弹出拍照界面后,镜头旋转了90°
来源:互联网 发布:王国祥白先勇 知乎 编辑:程序博客网 时间:2024/04/29 19:48
最近项目中的UIImagePickerController在iOS 8.1上使用的时候,出现了一个蛋疼的问题,pad水平放置,推出UIImagePickerController,拍照的时候发现,镜头莫名的旋转了90°,也就是说如果你去拍一个站着的人,发现他是躺着的,,,项目是限制Landscape两个方向的,试了网上一些解决办法,都是不行,至今没弄明白原因,除了iOS 8.1其他都正常,但是先上一个解决办法吧,不然boss吃了我:
注意要点
只有先水平放置present出UIImagePickerController时,才会出现问题
此时设备的orientation应该是face up
// 调整imagePickerController的方向,弥补iOS8时水平放置pad,imagePickerController默认竖屏,导致镜头旋转90° NSString *version = [[[UIDevice currentDevice] systemVersion] substringToIndex:3]; if ([[UIDevice currentDevice] orientation] == 5 && [version isEqualToString:@"8.1"]) { // face up if ([[UIApplication sharedApplication] statusBarOrientation] == 4) { // 如果应用处于landscaperight imagePicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI_2); // 顺时针旋转 } else if ([[UIApplication sharedApplication] statusBarOrientation] == 3) { // 如果应用处于landscapeleft imagePicker.cameraViewTransform = CGAffineTransformMakeRotation(-M_PI_2); // 逆时针旋转 } }
可以看出,其实就是将cameraView旋转成正常方向。
———————–2016-4-6————————–
最近发现上面的解决方式仍然有问题:现在imagePicker打开相机时,镜头是正常的,但是旋转pad,镜头又再次旋转90°。
增加了一段代码,完善后的地址:http://blog.csdn.net/u010731949/article/details/51075337
思路是:监听设备旋转通知,当设备旋转监听到pad旋转到UIDeviceOrientationPortraitUpsideDown、或者UIDeviceOrientationPortrait时,恢复imagePicker到原来的镜头方向_imagePicker.cameraViewTransform = CGAffineTransformMakeRotation(0); 当然如果默认应用是竖屏的,那么相应的对旋转到UIDeviceOrientationLandScape方向进行处理
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientChange:) name:UIDeviceOrientationDidChangeNotification object:nil];- (void)orientChange:(NSNotification *)noti { NSDictionary *notiDict = [noti userInfo]; UIDeviceOrientation orient = [UIDevice currentDevice].orientation; switch (orient) { case UIDeviceOrientationPortraitUpsideDown: case UIDeviceOrientationPortrait: _imagePicker.cameraViewTransform = CGAffineTransformMakeRotation(0); break; default: break; }
- iOS 8下UIImagePickerController弹出拍照界面后,镜头旋转了90°
- UIImagePickerController控件竖屏拍照保存后图片向右旋转了90度
- 修改UIImagePickerController拍照后旋转问题
- iOS 8.1中UIImagePickerController的相机镜头旋转bug
- iOS-UIImagePickerController拍照与摄像
- iOS 拍照和摄像UIImagePickerController
- iOS 拍照和摄像UIImagePickerController
- UIImagePickerController拍照上传图片旋转问题
- UIImagePickerController选择图片发送后旋转90度的问题
- UIImagePickerController选择图片发送后旋转90度的问题
- UIImagePickerController选择图片发送后旋转90度的问题
- 移动端上传图片 支持图片预览、压缩、大图分片压缩、压缩后上传 解决了IOS竖屏拍照旋转90度的问题
- 拍照后旋转图片
- IOS开发 拍照上传图片旋转90°
- iOS拍照之后图片在PC端粘贴后自动旋转90度
- ios 拍照 照片过小 UIImagePickerController
- iOS 拍照和视频录制(UIImagePickerController)
- 使用UIImagePickerController实现 iOS录像拍照
- 微信开发 ajax获取 signpackage 且共享
- java 重定向和转发的区别
- MySQL重装失败,could not start the service MySQL.Error:0
- const函数小思
- RSA签名与RSA加密异同
- iOS 8下UIImagePickerController弹出拍照界面后,镜头旋转了90°
- Token or TokenToolss
- 最大值和最小值
- Android观察者模式Observable的学习(一)
- 推荐系统的评价指标
- [codevs 1515]跳 【解题报告】
- c++继承
- deep learning GPU如何选型号
- Django学习随手记(六)