ios - 有什么方法可以检测手机平放时的角度吗?

标签 ios objective-c orientation portrait

有什么方法可以获取手机的当前角度,即使手机处于纵向锁定状态并试图通过右手(横向)位置或左手位置(横向)握住它来捕捉图像?

每当我通过右手位置拍摄图像(将主页按钮保持在右侧)时,我都能正确获取图像,但每当我通过左手位置拍摄图像时,我都会得到倒置图像(图像旋转 180 度) .如何解决这个问题?

我试过了但是没有用,因为方向总是纵向的

UIDeviceOrientation orientation=[[UIDevice currentDevice] orientation];

     // Do Orientation operations
     if (orientation == UIDeviceOrientationLandscapeRight)
     {
         MYLog(@"LandRight");
         rotation = [NSValue valueWithCGAffineTransform:CGAffineTransformMakeRotation(90 * (M_PI/180))];
     }
     else if(orientation == UIDeviceOrientationLandscapeLeft){
         MYLog(@"LandLeft");
         rotation = [NSValue valueWithCGAffineTransform:CGAffineTransformMakeRotation(-90 * (M_PI/180))];
     }
     else if(orientation == UIDeviceOrientationPortrait){
         MYLog(@"porttttt");
         rotation = [NSValue valueWithCGAffineTransform:CGAffineTransformMakeRotation(0 * (M_PI/180))];
     }
     else if(orientation == UIDeviceOrientationPortraitUpsideDown)
     {
         MYLog(@"portupdown");
         rotation = [NSValue valueWithCGAffineTransform:CGAffineTransformMakeRotation(1 * (M_PI/180))];
     }

     else if(orientation == UIDeviceOrientationFaceUp)
     {
         MYLog(@"faceup");
         rotation = [NSValue valueWithCGAffineTransform:CGAffineTransformMakeRotation(-90 * (M_PI/180))];
     }
     [transform setValue:rotation forKey:@"inputTransform"];
     enhancedImage = [transform outputImage];

任何更多的捕获都不应该旋转图像。

最佳答案

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    if UIDevice.current.orientation.isLandscape {
        print("Landscape")
    } else {
        print("Portrait")
    }
}

希望对你有帮助

关于ios - 有什么方法可以检测手机平放时的角度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56106132/

相关文章:

ios - 控制 Sprite 套件中的最大速度

ios - 如何使用动态单元格高度和自动布局以编程方式创建非常基本的 UITableView?

objective-c - SpriteKit : How to stop/reset rotation on physicsBody

ios - Swift 2 中数组的扩展

objective-c - 如何在运行时找出屏幕上有哪些 UIVIews

Android 相机横向到纵向方向问题

ios - shouldAutorotate -> false,模拟器仍然旋转

android - 通过组合 TYPE_ACCELEROMETER 和 TYPE_MAGNETIC_FIELD,Sensor.TYPE_ROTATION_VECTOR 和 getOrientation 之间的区别

ios - 全屏高斯模糊

iphone - 从应用程序中关闭自动锁定