У меня есть UIView внутри UIViewController, UIView используется для захвата фотографий с использованием AVCaptureSession.Показать правильное представление после вращения
Следовательно, я не хотел, чтобы мой UIView вращался, когда мое устройство вращается, чтобы реализовать это, я написал этот фрагмент кода.
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
CGAffineTransform deltaTransform = coordinator.targetTransform;
CGFloat deltaAngle = atan2f(deltaTransform.b, deltaTransform.a);
CGFloat currentRotation = [[self.camera.layer valueForKeyPath:@"transform.rotation.z"] floatValue];
currentRotation += -1 * deltaAngle + 0.0001;
[self.camera.layer setValue:@(currentRotation) forKeyPath:@"transform.rotation.z"];
}
completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
CGAffineTransform currentTransform = self.camera.transform;
currentTransform.a = round(currentTransform.a);
currentTransform.b = round(currentTransform.b);
currentTransform.c = round(currentTransform.c);
currentTransform.d = round(currentTransform.d);
}];
}
В портретном режиме мой UIView открывает полный экран, когда я поворачиваю вращение не оказывает никакого влияния на мою камеру UIView и другие UIViews вращаются плавно, но проблема на вращение в ландшафтном режиме моя камера UIView является не полный экран и принимает случайный размер на экране. Что я делаю неправильно?
Примечание: Я разработал представление с использованием раскадровки
Вы пытались отключить автомакеты? – atulkhatri
Я не могу отключить автомат. Мне нужен мой другой UIView, у которого есть кнопка захвата, кнопка вспышки для правильного поворота –