標準の「カバーバーティカル」セグエトランジションの逆を行おうとしているカスタムセグエがあります。私はこれがうまくいくと思います:
UIView *srcView = ((UIViewController *)self.sourceViewController).view; UIView *dstView = ((UIViewController *)self.destinationViewController).view; [dstView setFrame:CGRectMake(0, 0, srcView.window.bounds.size.width, srcView.window.bounds.size.height)]; [srcView.window insertSubview:dstView belowSubview:srcView]; [UIView animateWithDuration:0.3 animations:^{ srcView.center = CGPointMake(srcView.center.x - srcView.frame.size.width, srcView.center.y); } completion:^(BOOL finished){ [srcView removeFromSuperview]; } ];
問題は、アプリ内の他のすべてのビューが横向きであるにもかかわらず、宛先ビューが縦向きで表示されることです。また、x座標とy座標が逆になります。なぜこうなった?
私はすべてのViewControllerにセットアップしshouldAutorotateToInterfaceOrientation
ましたが、それは役に立ちませんでした。でビューを回転させることはできますがCGAffineTransformMakeRotation
、それは正しいことではないようです。一つには、座標はまだ逆になります。
アップデート:
ビューを回転させるために使用してみCGAffineTransformRotate
ましたが、ばかげているように見えます。背景のほとんどが黒く表示されます。私はこれがそれが機能すると思われる方法ではないと思います。