맞춤보기를 사용하여 두 개의보기 컨트롤러 사이를 탐색합니다. 커스텀 segue는 CGAffineTransformMakeScale을 사용하여 대상 컨트롤러에 확대/축소 효과를 만듭니다.가로 방향으로 올바른 방향을 사용하지 않는 맞춤 세구 방향
프로젝트를 세로 모드로 실행하면 모든 것이 정상적으로 작동하지만 가로로 변경하면 문제가 발생합니다. 대상 컨트롤러는 세로 방향으로 화면에 나타나고 올바른 배율 (1.0, 1.0)로 애니메이션되고 애니메이션이 완료되면 올바른 방향으로 변경됩니다. 이것은 정말 혼란스럽고이 문제에 관해서는 온라인으로 찾을 수 없기 때문에 어떤 도움을 주시면 대단히 감사하겠습니다.
이 테스트에 사용하는 프로젝트는 각보기를 트리거하는 단추가있는 두 개의보기 컨트롤러를 사용합니다.
이 내 CustomZoomSegue.m 파일입니다
이#import "CustomZoomSegue.h"
@implementation CustomZoomSegue
- (void)perform
{
UIViewController *destinationViewController = (UIViewController *)self.destinationViewController;
UIViewController *sourceViewController = (UIViewController *)self.sourceViewController;
UIWindow *mainWindow = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIView *sourceView = [sourceViewController view];
UIView *destinationView = [destinationViewController view];
destinationView.frame = sourceView.frame;
[mainWindow addSubview:destinationView];
[destinationView setAlpha:0.0f];
[destinationView setTransform:CGAffineTransformMakeScale(0.0, 0.0)];
// slide newView over oldView, then remove oldView
[UIView animateWithDuration:0.8
animations:^{
[destinationView setTransform:CGAffineTransformMakeScale(1.0, 1.0)];
[destinationView setAlpha:1.0f];
}
completion:^(BOOL finished){
[destinationView removeFromSuperview];
[sourceViewController presentViewController:destinationViewController animated:NO completion:nil];
}];
}
@end
사람이 이런 일이 발생하는 이유 어떤 생각을 가지고 있습니까? 그것은 나를 미치게합니다.