Есть ли способ получить текущий угол наклона телефона, даже если телефон находится в портретной блокировке и пытается сделать снимок, удерживая его в положении для правой (альбомной) или левой руки (альбомной)?
Всякий раз, когда я снимаю изображение с правой стороны (удерживая кнопку «Домой» справа), я получаю его правильно, но всякий раз, когда я снимаю изображение с левой стороны, я получаю перевернутое изображение (изображение повернуто на 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];
Захват больше не должен вращать изображение.