Предположим, что обычная реализация камеры A и т. Д. С AVCaptureVideoPreviewLayer для предварительного просмотра. Теперь добавьте еще один вид сверху с элементами управления (и ограничениями). Теперь, когда телефон повернут, элементы управления вращаются в обычном режиме, но я хочу, чтобы предварительный просмотр не изменился, как в приложении камеры Apple. Как я могу сохранить предварительный просмотр от вращения вместе с элементами управления?AVCaptureSession фиксированная ориентация с вращающимся интерфейсом
Это работает, но анимация некрасиво:
- (void) deviceOrientationDidChange
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationFaceUp || orientation == UIDeviceOrientationFaceDown || orientation == UIDeviceOrientationUnknown || currentOrientation == orientation)
{
return;
}
currentOrientation = orientation;
if (self.previewLayer)
{
if (orientation == UIInterfaceOrientationPortrait)
{
self.previewLayer.connection.videoOrientation = AVCaptureVideoOrientationPortrait;
self.previewLayer.frame = self.view.bounds;
}
else if (orientation == UIInterfaceOrientationLandscapeLeft)
{
self.previewLayer.frame = self.view.bounds;
self.previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeLeft;
}
else if (orientation == UIInterfaceOrientationLandscapeRight)
{
self.previewLayer.frame = self.view.bounds;
self.previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;
}
}
}